当前位置: 首页 > news >正文

个人网站多少钱一年wordpress设置撰写

个人网站多少钱一年,wordpress设置撰写,做免费推广的网站有哪些,手机网站一键分享遍历二叉树的算法描述(递归定义) 先序遍历 若二叉树为空,则空操作; 否则 (1)访问根节点 (2)先序遍历左子树 (3)先序遍历右子树 中序遍历 若二叉树为空…
  1. 遍历二叉树的算法描述(递归定义)

先序遍历

若二叉树为空,则空操作;

否则

(1)访问根节点

(2)先序遍历左子树

(3)先序遍历右子树

中序遍历

若二叉树为空,则空操作;

否则

(1)中序遍历左子树

(2)访问根节点

(3)中序遍历右子树

后序遍历

若二叉树为空,则空操作;

否则

(1)后序遍历左子树

(2)后序遍历右子树

(3)访问根节点

  1. 根据遍历序列确定二叉树
  • 若二叉树中各结点的值均不同,则二叉树的先序、中序、后序序列都是唯一的
  • 由二叉树的先序序列和中序序列,或由后序序列和中序序列可以唯一确定一棵二叉树

由先序序列和中序序列确定二叉树:

先序序列先访问的是根节点,由此确定二叉树的根节点和左右子树,然后重复此过程可递归的找到所有的左右子树和根节点

由后序序列和中序序列确定二叉树:

后续遍历最后访问的是根节点,其余同理

  1. 遍历算法实现

递归实现

先序遍历

Status PreOrderTraverse(BiTree T){if(t==NULL)return OK;else{printf("%d", T->data);//访问根节点PreOrderTraverse(T->lchild);//递归遍历左子树PreOrderTraverse(T->rchild);//递归遍历右子树}
}

中序遍历

Status InOrderTraverse(BiTree T){if(t==NULL)return OK;else{InOrderTraverse(T->lchild);//递归遍历左子树printf("%d", T->data);//访问根节点InOrderTraverse(T->rchild);//递归遍历右子树}
}

后序遍历

Status PostOrderTraverse(BiTree T){if(t==NULL)return OK;else{PostOrderTraverse(T->lchild);//递归遍历左子树PostOrderTraverse(T->rchild);//递归遍历右子树printf("%d", T->data);//访问根节点}
}

非递归实现

Status InOderTravese(BiTree T){BiTree p,q;InitStack(S);p=T;while(p||!StackEmpty(S)){if(p){Push(S,p);p=p->lchild;}else{Pop(S,q);printf("%c", q->data);p=q->rchild;}}return OK;
}
  1. 二叉树的层次遍历

对于一棵二叉树,从根节点开始,按从上到下,从左到右的顺序访问每个结点

设计思路:使用一个队列

1.将根节点进队

2.队不为空时,出队结点p,访问它

​ 1.若它右左孩子,将左孩子进队

​ 2.若它有右孩子,将右孩子进队

使用循环队列

typedef struct{BTNode data[MaxSize];int front,rear;  //队头和队尾指针
}SqQueue;//循环队列
void LevelOrder(BTNode *b){BTNode *p;SqQueue *qu;InitQueue(qu);	//初始化队列enQueue(qu, b);	//根节点进队while(!QueueEmpty(qu)){deQueue(qu, p);				//出队结点pprintf("%c", p->data);		//访问结点pif(p->lchild!=NULL)			//左孩子不为空则进队enQueue(qu, p->lchild);if(p->rchild!=NULL)			//右孩子不为空则进队enQueue(qu, p->rchild);}
}
  1. 二叉树的建立

按先序遍历序列建立二叉树的二叉链表

// 构造二叉树(前序遍历,'#'表示空节点)
Status CreateBiTree(BiTree &T){cin>>ch;if(ch=="#")T=NULL;else{if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))exit(OVERFLOW);T->data=ch;				//生成根节点CreateBiTree(T->lchild);	//构造左子树CreateBiTree(T->rchild);	//构造右子树}return OK;
}
  1. 复制二叉树

算法描述

如果是空树,递归结束;

否则,申请新结点空间,复制根节点

​ 递归复制左子树

​ 递归复制右子树

int Copy(BiTree T, BiTree &NewT){if(T==NULL){		//如果是空树,返回0NewT = NULL;return 0;}else{NewT=new BiTree;NewT->data=T->data;Copy(T->lchild, NewT->lchild);Copy(T->rchild, NewT->rchild);}
}
  1. 计算二叉树的深度

算法思路

如果是空树,则深度为0

否则,递归计算左子树的深度m,递归计算右子树的深度n,二叉树深度为max(m,n)+1

int Depth(BiTree T){if(T==NULL)return 0;else{m=Depth(T->lchild);n=Depth(T->rchild);return m>n?m+1:n+1;}
}
  1. 计算二叉树结点总数

算法描述

如果是空树,则结点个数为0

否则,结点个数为左子树的结点个数+右子树的结点个数再+1

int NodeCount(BiTree T){if(T==NULL)return 0;elsereturn NodeCount(T->lchild)+NodeCount(T->rchild)+1;
}
  1. 计算叶子结点数

算法描述

如果是空树,则叶子结点个数为0

否则,叶子结点个数为左子树的叶子结点个数+右子树的叶子结点个数

int LeafCount(BiTree T){if(T==NULL)return 0;if(T->lchild==NULL&&T->rchild==NULL)return 1;elsereturn LeafCount(T->lchild)+LeafCount(T->rchild);
}
http://www.yayakq.cn/news/135840/

相关文章:

  • 网站开发 慕课网站建设 标准
  • 永康外贸网站建设wordpress公告插件
  • 一起作做业网站受欢迎的福州网站建设
  • 如何与老板谈网站建设江宁住房和城乡建设局网站
  • 创意灵感网站宠物网站开发文档
  • wordpress交友模板电商网站产品设计优化技术主要是
  • 本机怎么放自己做的网站seo网络推广师招聘
  • 做网站挣钱快又多网络工程师培训大约多少钱
  • 团支部智慧团建网站做网站考虑的方面
  • 网站开发李沛杰深圳做网站优化
  • 整站策划营销型网站建设网站优化网站建设外包合同模板
  • 苏州做网站最好公司有哪些wordpress mu常见问题解答
  • 百度收录网站要多郑州七彩网站建设
  • 做网站的目的和要求抖音代运营工作怎么样
  • thinkphp 网站源码修复wordpress
  • 上海建设部网站首页网站开发实训h5总结
  • 苏州市城乡和建设局网站钟表 东莞网站建设
  • 印记室内设计网站seo专业培训中心
  • 高青网站建设搜索引擎营销的概念
  • 新沂建设网站查询企业信息的网站
  • 化妆品网站的搭建光谷做网站推广怎么样
  • 网站的结构怎么做网站百度百科怎么做
  • 网站建设一般用到的语言专门做折扣的网站有哪些
  • 做网站技术服务合同优惠券购物网站怎么做
  • 英讯网站建设旅游网站建设策划方案
  • 企业网站建设维护电脑游戏排行榜前十名
  • 国内最大的摄影网站网站如何添加数据
  • 做窗帘网站泉州安全教育平台
  • 做完整的网站设计需要的技术php网站开发考试
  • 国外注册机网站新版wordpress文章编辑界面