二叉树的建立以及三种遍历方式
2014-12-31 22:26
253 查看
对于已知两个遍历,重建二叉树,我表示我已经跪了。。。bug还没调好。加油吧
今天仅在晚上看了一会书,所以没有太多的记录。
抽了一段时间写了二叉树的代码,对于基本的知识还是理解的。接下来的工作主要是用非递归方式实现二叉树的三种遍历。
今天仅在晚上看了一会书,所以没有太多的记录。
抽了一段时间写了二叉树的代码,对于基本的知识还是理解的。接下来的工作主要是用非递归方式实现二叉树的三种遍历。
#include<iostream> using namespace std; const int N=16; int a ={1,2,3,0,4,0,5,0,0,6,0}; struct tree { int data; tree *left; tree *right; }node ; void CreateTree() { for(int i=0;i<N;i++) node[i].data=a[i]; for(int i=0;i<N;i++) { if(node[i].data) { if(2*i+1<N&&node[2*i+1].data) node[i].left=&node[2*i+1]; else node[i].left=NULL; if(2*i+2<N&&node[2*i+2].data) node[i].right=&node[2*i+2]; else node[i].right=NULL; } } } void VisitTree(tree *T)//可以调整前序遍历、中序遍历、后序遍历 //算法复杂度为O(n),递归工作栈的深恰好为树的高度。 { if(T!=NULL) { VisitTree(T->left); VisitTree(T->right); cout<<T->data<<'/'; } } int main() { CreateTree(); VisitTree(&node[0]); getchar(); }
相关文章推荐
- C++编程练习(8)----“二叉树的建立以及二叉树的三种遍历方式“(前序遍历、中序遍历、后续遍历)
- 二叉树的建立以及三种遍历方式的递归、非递归的实现
- C++编程练习(8)----“二叉树的建立以及二叉树的三种遍历方式“(前序遍历、中序遍历、后续遍历)
- [树]二叉树的建立以及三种遍历
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的创建,插入,删除,输出,求高度,求度以及三种遍历方式实现
- Java实现二叉树建立以及三种遍历
- 初识树结构,简单模拟无规律的二叉树,实现二叉树的构建,计算树的深度以及三种遍历方式以及搜索删除,销毁整个树
- (学习java)二叉树的链式实现以及三种遍历方式
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树三种遍历方式 递归与非递归实现 总结
- 数据结构中二叉树的三种遍历方式
- 二叉树(按层建立二叉树,前中后序以及按层遍历)
- 二叉树的建立和三种遍历(先序、中序和后序)
- 由树的前序遍历,中序遍历建立一颗二叉树,并以后续遍历的方式输出其元素
- 二叉树的递归创建,以及二叉查找树查找的建立 和遍历查找的比较
- 二叉树三种遍历方式 递归与非递归实现