二叉树的建立与先序中序后序遍历
来源:互联网 发布:mac做双系统 编辑:程序博客网 时间:2024/05/15 22:42
代码摘自郝斌老师的数据结构视频
建立如下图所示的二叉树:
代码如下:
#include <stdio.h>#include <malloc.h>struct BTNode {int data;struct BTNode * pLchild; //p是指针 L是左 child是孩子struct BTNode * pRchild; };//函数声明BTNode * CreateBTree();void PreTraverseBTree(BTNode * pT);void InTraverseBTree(BTNode * pT);void PostTraverseBTree(BTNode * pT);int main(void){BTNode *pT = CreateBTree();PreTraverseBTree(pT); //先序遍历//InTraverseBTree(pT); //中序遍历//PostTraverseBTree(pT); //后序遍历return 0;}void PreTraverseBTree(BTNode * pT){if(NULL != pT) {printf("%c\n", pT->data);if(NULL != pT->pLchild) PreTraverseBTree(pT->pLchild);if(NULL != pT->pRchild)PreTraverseBTree(pT->pRchild);}}void InTraverseBTree(BTNode * pT){ if(NULL != pT) { if(NULL != pT->pLchild) InTraverseBTree(pT->pLchild);printf("%c\n", pT->data); if(NULL != pT->pRchild) InTraverseBTree(pT->pRchild); }}void PostTraverseBTree(BTNode * pT){ if(NULL != pT) { if(NULL != pT->pLchild) PostTraverseBTree(pT->pLchild); if(NULL != pT->pRchild) PostTraverseBTree(pT->pRchild);printf("%c\n", pT->data); }}BTNode * CreateBTree(){BTNode * pA = (BTNode*)malloc(sizeof(BTNode));BTNode * pB = (BTNode*)malloc(sizeof(BTNode));BTNode * pC = (BTNode*)malloc(sizeof(BTNode));BTNode * pD = (BTNode*)malloc(sizeof(BTNode));BTNode * pE = (BTNode*)malloc(sizeof(BTNode));pA->data = 'A';pB->data = 'B';pC->data = 'C';pD->data = 'D';pE->data = 'E';pA->pLchild = pB;pA->pRchild = pC;pB->pLchild = pB->pRchild = NULL;pC->pLchild = pD;pC->pRchild = NULL;pD->pLchild = NULL;pD->pRchild = pE;pE->pLchild = pE->pRchild = NULL;return pA;}
先序遍历,中序遍历和后序遍历其实就是根结点的先后输出顺序不一样。
如上的二叉树不同方式遍历结果如下
先序遍历:ABCDE
中序遍历:BADEC
后序遍历:BEDCA
- 二叉树的建立与先序中序后序遍历
- 二叉树的建立与遍历
- c++二叉树的建立与遍历
- C++二叉树的建立与遍历
- 二叉树的建立与遍历
- 二叉树的遍历与建立
- 二叉树的建立与遍历
- 二叉树的建立与遍历
- 二叉树的建立与遍历
- 数据结构 二叉树的建立与遍历
- 二叉树的建立与遍历
- 二叉树的建立 与 遍历
- 二叉树的建立与遍历
- 二叉树的建立与遍历
- 二叉树的建立与遍历
- 线索二叉树的建立与遍历
- 二叉树的建立与遍历
- 二叉树的建立与遍历
- 中文乱码的解决方式
- mysql快速执行超大sql脚本方法
- 任总与2012实验室座谈会纪要
- 编程之美 2.7最大公约数问题
- 通过response输出认证图片
- 二叉树的建立与先序中序后序遍历
- 未来一年48项即将大热的技术趋势HTML5在列
- 意法半导体推出了LBP01芯片
- 传统3D游戏引擎的Web化
- 在eclipse中新建一个web项目
- c#蜘蛛程序之HTML解析利器HtmlAgilityPack
- 女人,你说,你凭什么不坚强?
- ROW_NUMBER() OVER函数的基本用法
- Tomcat内存溢出的三种情况及解决办法分析