二叉树的遍历操作
来源:互联网 发布:java ocr身份证识别 编辑:程序博客网 时间:2024/04/25 03:54
**这几天在数据结构当中的二叉树的基本操作,发现了好多难点知识,例如二叉树的遍历里操作有先序、中序和后序之分 还有许多基本概念,树的子树,节点有根节点,叶子节点等,树的深度..... 今天练习一下二叉树的遍历操作的算法。 先看先序遍历
这里第利用先序遍历来建立一个二叉树存储结构
Status CreateBiTree(BinTree &bt) { //ABC@@DE@G@@F@@@ char ch; scanf_s("%c",&ch); if (ch == '@') bt = NULL; else { bt = (BinTNode*)malloc(sizeof(BinTree)); bt->data = ch; CreateBiTree(bt->lchild); //递归建立左子树 CreateBiTree(bt->rchild); //递归建立右子树 } return OK;}
中序遍历操作利用了前面学过基本的数据结构的栈的操作
//二叉树中序遍历非递归算法Status Inorder(BinTree bt) { BinTNode *stack[num]; //定义数组栈 int top = 0; //初始化栈 stack[top] = bt; do { while (NULL!=stack[top]) { //扫描所有的根节点及其所有的左节点并入栈 top = top + 1; stack[top] = stack[top - 1]->lchild; } top = top - 1; if (top >= 0) { printf("%c", stack[top]->data); stack[top] = stack[top]->rchild; } } while (top >= 0); return OK;}
//二叉树的递归中序遍历算法Status Inorder(BinTree bt){ if(bt!=NUll) { Inorder(bt->lchild); printf("%5c",bt->data); Inoorder(bt->rchild); } return OK;}
//二叉树后序遍历递归算法Status PostOrder(BinTree bt) { if(bt !=NULL) { PostOrder(bt->lchild); PostOrder(bt->rchild); printf("%5c",bt->data); } return OK;}
今天先写这么多了,有错误的地方请见谅,多多指点。。。。。。
1 0
- 二叉树的遍历操作
- 二叉树的遍历操作
- 二叉树的遍历操作
- 二叉树的遍历操作
- 二叉树的创建,遍历等操作
- 二叉树的遍历及操作
- 二叉树的基本操作及遍历
- 二叉树的创建,及遍历 操作
- 平衡二叉树的实现 操作 遍历
- 二叉树的遍历及常用操作
- 遍历二叉树的各种操作
- 遍历二叉树的各种操作
- 二叉树的基本操作和遍历
- 二叉树的非递归遍历操作
- 二叉树的遍历 非递归操作
- 二叉树的各种遍历操作
- 遍历二叉树的各种操作
- ~二叉树的非递归遍历操作~
- 编程过程中遇到的错误
- 2016123
- Qt在Windows下的三种编程环境搭建
- ListPopupWindow的简单使用
- Spring
- 二叉树的遍历操作
- Opengl 和 GLSL版本对应关系
- bean->map或map->bean的工具类主要针对基本类型
- MFC中的winmain
- web安全基础
- 集合的并查
- Shell部分16
- Android编程之接口数据处理
- MySQL服务器日志(1)