《C语言实现二叉树的后续遍历(非递归)》由会员分享,可在线阅读,更多相关《C语言实现二叉树的后续遍历(非递归)(2页珍藏版)》请在金锄头文库上搜索。
1、二叉树的前序遍历、中序遍历、后续遍历(包括递归、非递归,共六种)1、后续遍历(非递归):#include#includestruct BiTNode *stack100;struct BiTNode/定义结构体 char data; struct BiTNode *lchild,*rchild;void later(struct BiTNode *&p) /前序创建树char ch;scanf(%c,&ch);if(ch= )p=NULL;elsep=(struct BiTNode *)malloc(sizeof(struct BiTNode);p-data=ch;later(p-lchild
2、);later(p-rchild);void print(struct BiTNode *p) /后序遍历(输出二叉树)int i=-1;while(1)while(p!=NULL)stack+i=p;/*printf.0(ok?n);*/p=p-lchild;if(i!=-1) while(p=stacki-rchild|(p=stacki-lchild&stacki-rchild=NULL) p=stacki-; printf(%c,p-data); if(i=-1) return; p=stacki-rchild;elsereturn;int main()/主函数struct BiTNode *p,*t;later(p);print(p);printf(n);system(pause);return 0;供测试使用的数据前序创建二叉树中序后序/*AB D C */BDACDBCA/*ABC D EF G */CBDAFEGCDBFGEA