#include<stdlib.h>
//定义
typedef struct BiTNode{
int data; //数据域
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//创建新节点
bool createNode(BiTree &T,int value){
T=(BiTNode *)malloc(sizeof(BiTNode));
if(T==NULL)
return false;
T->data=value;
T->lchild=NULL;
T->rchild=NULL;
return true;
}
//访问结点
void visit(BiTNode *T){
int x=T->data;
printf("%d ",x);
}
//先序遍历
void PreOrder(BiTNode *T){
if(T!=NULL){
visit(T);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
//中序遍历
void InOrder(BiTNode *T){
if(T!=NULL){
InOrder(T->lchild);
visit(T);
InOrder(T->rchild);
}
}
//后序遍历
void PostOrder(BiTNode *T){
if(T!=NULL){
PostOrder(T->lchild);
PostOrder(T->rchild);
visit(T);
}
}
int main(){
BiTree T;
createNode(T, 1);
createNode(T->lchild, 2);
createNode(T->rchild, 3);
createNode(T->lchild->lchild, 4);
createNode(T->lchild->rchild, 5);
// 先序遍历二叉树
printf("先序遍历结果为:");
PreOrder(T);
// 中序遍历二叉树
printf("中序遍历结果为:");
InOrder(T);
// 后序遍历二叉树
printf("后序遍历结果为:");
PostOrder(T);
return 0;
}
二叉树遍历
原创
©著作权归作者所有:来自51CTO博客作者CherriesOvO的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:顺序表——动态分配和静态分配
下一篇:线性表——链式存储
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
创建二叉树并遍历二叉树
刚刚接触二叉树的同学一很想学习如何构建一颗简单的二叉树,下面我用C语言来实现一个简单的二叉树,并且用先
二叉树 遍历 先序遍历 中序遍历 后序遍 子树 二叉树 #include -
二叉树广度遍历 java 二叉树遍历实现
前言 二叉树的三种遍历实现,即前序遍历、中序遍历、后序遍历
二叉树广度遍历 java 非递归 后序遍历 递归 -
AndroidUtility软件
Android运行过程中有多种情况会触发垃圾回收(GC,garbage collection),以android 5.0为例,可以发现,在应用运行过程中最常见的触发GC的方式如下图所示: 此图是通过android studio截取的android应用运行过程中某应用内存占用情况的动态变化图,蓝色部分是应用占用的内存,灰色部分是当前空闲的内存。可以看到,在白色圈内的那点,当应用空闲的内存到达某阈
AndroidUtility软件 Garbage Collection Java Java 垃圾回收 android