二叉树的遍历
来源:互联网 发布:淘宝代销不赚钱 编辑:程序博客网 时间:2024/06/07 15:31
先序,中序,后序,非递归前序,中序,后序,层序
在此默写一下各个算法。前序void PerOrder(BTree bt){ if(!bt){ visit(bt); PerOrder(bt->left); PerOrder(bt->right); }}void PerOrder(BTree bt){ InitStack(S); BTree p=bt; while(p||!IsEmpty(S)){ if(p){ visit(p->data); Push(S,p); p=p->left; }else{ Pop(S,p); p=p->right; } }}中序void InOrder(BTree bt){ if(!bt){ InOrder(bt->left); visit(bt); InOrder(bt->right); }}void InOrder(BTree bt){ InitStack(S); BTree p=bt; while(p||!IsEmpty(S)){ if(p){ Push(S,p); p=p->left; }else{ Pop(S,p); visit(p->data); p=p->right; } }}后序void PostOrder(BTree bt){ if(!bt){ PostOrder(bt->left); PostOrder(bt->right); visit(bt); }}void PostOrder(BTree bt){ InitStack(S); BTree p=bt; BTree r=NULL; while(p||!IsEmpty(S)){ if(p){ Push(S,p); p=p->left; }else{ GetTop(S,p); if(p->right!=NULL&&p->right!=r){ Push(S,p); p=p->right; }else{ Pop(S,p); visit(p->data); r=p; p=NULL; } } }}行序void LevelOrder(BTree bt){ if(!bt)return; BTree p; Enque(Q,bt); while(!IsEmpty(Q)){ Deque(Q,p);visit(p->data); if(!p->left){ Enque(Q,p->left); } if(!p->right){ Enque(Q,p->right); } //if(front==last){ //level++; //last=rear; //} }}
阅读全文
0 0
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 51talk-4 I'm not alone here
- 例子---PHP与Form表单之一
- Oracle12c安装后忘记用户名和密码可通过如下方法解决:
- 将a标签的下划线去掉的方法
- hackerrank Most Common
- 二叉树的遍历
- caioj 练习题 1051高密度加法
- 使用LitePal做一个收藏新闻的功能 + SwipeBackLayout滑出活动
- POJ
- [LeetCode] Longest Substring Without Repeating Characters
- Wikipedia 2017.11.10
- E
- LeetCode刷题记录1-求容器的任意2个元素和某一值的下标
- c和c++的区别&gcc和g++的区别