二叉树的遍历算法实验报告(二叉树的遍历算法)
大家好,我是小五,我来为大家解答以上问题。二叉树的遍历算法实验报告,二叉树的遍历算法很多人还不知道,现在让我们一起来看看吧!
1、
1、非递归很难理解的。不过刚好我机子里代码,都是在编译器了测试过没问题的代码。
2、void PreOrderTraverse2(BiTree T) /*先序遍历二叉树的非递归实现*/ { BiTree stack[MaxSize]; /*定义一个栈,用于存放结点的指针*/ int top; /*定义栈顶指针*/ BitNode *p; /*定义一个结点的指针*/ top=0; /*初始化栈*/ p=T; while(p!=NULL||top>0) { while(p!=NULL) /*如果p不空,访问根结点,遍历左子树*/ { printf("%2c",p->data); /*访问根结点*/ stack[top++]=p; /*将p入栈*/ p=p->lchild; /*遍历左子树*/ } if(top>0) /*如果栈不空*/ { p=stack[--top]; /*栈顶元素出栈*/ p=p->rchild; /*遍历右子树*/ } } } void InOrderTraverse2(BiTree T) /*中序遍历二叉树的非递归实现*/ { BiTree stack[MaxSize]; /*定义一个栈,用于存放结点的指针*/ int top; /*定义栈顶指针*/ BitNode *p; /*定义一个结点的指针*/ top=0; /*初始化栈*/ p=T; while(p!=NULL||top>0) { while(p!=NULL) /*如果p不空,访问根结点,遍历左子树*/ { stack[top++]=p; /*将p入栈*/ p=p->lchild; /*遍历左子树*/ } if(top>0) /*如果栈不空*/ { p=stack[--top]; /*栈顶元素出栈*/ printf("%2c",p->data); /*访问根结点*/ p=p->rchild; /*遍历右子树*/ } } }
3、void PostOrderTraverse2(BiTree T) /*后序遍历二叉树的非递归实现*/ { BiTree stack[MaxSize]; /*定义一个栈,用于存放结点的指针*/ int top; /*定义栈顶指针*/ BitNode *p,*q; /*定义结点的指针*/ top=0; /*初始化栈*/ p=T,q=NULL; /*初始化结点的指针*/ while(p!=NULL||top>0) { while(p!=NULL) /*如果p不空,访问根结点,遍历左子树*/ { stack[top++]=p; /*将p入栈*/ p=p->lchild; /*遍历左子树*/ } if(top>0) /*如果栈不空*/ { p=stack[top-1]; /*取栈顶元素*/ if(p->rchild==NULL||p->rchild==q) /*如果p没有右孩子结点,或右孩子结点已经访问过*/ { printf("%2c",p->data); /*访问根结点*/ q=p; p=NULL; top--; } else p=p->rchild; } } }
本文到此讲解完毕了,希望对大家有帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
【盘点老人去世后的子孙禁忌】在中国传统文化中,老人去世后,家庭成员尤其是子孙后代在行为、言语、生活习惯...浏览全文>>
-
【盘点老牛湾旅游攻略】老牛湾,位于山西省忻州市偏关县,是黄河与长城交汇的地方,被誉为“黄河第一湾”。这...浏览全文>>
-
【盘点快手上热门的方法】在短视频平台中,快手凭借其真实、接地气的内容风格吸引了大量用户。想要在快手上获...浏览全文>>
-
【盘点课堂教学模式有哪些】在当前教育不断发展的背景下,课堂教学模式也在不断创新与优化。不同的教学模式适...浏览全文>>
-
【盘点开天门的作用】在传统文化与玄学中,“开天门”是一个充满神秘色彩的概念,常被用于描述一种通灵、修道...浏览全文>>
-
【盘点金丝绒面料的优缺点】金丝绒是一种常见的纺织面料,因其柔软、奢华的触感和丰富的色彩表现力,在家居装...浏览全文>>
-
【盘点简爱好词好句】在阅读《简爱》这部经典文学作品时,许多读者都被其中深刻的情感描写和富有哲理的语言所...浏览全文>>
-
【排骨玉米板栗汤】一、排骨玉米板栗汤是一道营养丰富、味道鲜美的家常汤品,适合在秋冬季节饮用。这道汤以排...浏览全文>>
-
【排骨应该怎样炖好吃又简单】炖排骨是一道非常受欢迎的家常菜,不仅营养丰富,还能暖胃暖心。但很多人在炖排...浏览全文>>
-
【排骨要蒸多长时间能熟】在日常烹饪中,蒸排骨是一道非常受欢迎的家常菜,既保留了食材的原汁原味,又营养丰...浏览全文>>