二叉排序树的创建、插入和遍历(代码)
来源:互联网 发布:java和安卓哪个好 编辑:程序博客网 时间:2024/06/05 09:23
/*二叉排序树的创建、插入、遍历样例输入51 6 5 9 8样例输出1 6 5 9 81 5 6 8 95 8 9 6 1*/#include<stdio.h>#include<string>using namespace std;//数据结构struct Node{ Node *lchild; Node *rchild; int c;} Tree[100];int loc;//创建树Node *create(){ Tree[loc].lchild = NULL; Tree[loc].rchild = NULL; return &Tree[loc++];}//前、中、后序遍历void preOrder(Node *T){ printf("%d ",T->c); if(T->lchild!=NULL) { preOrder(T->lchild); } if(T->rchild!=NULL) { preOrder(T->rchild); }}void midOrder(Node *T){ if(T->lchild!=NULL) { midOrder(T->lchild); } printf("%d ",T->c); if(T->rchild!=NULL) { midOrder(T->rchild); }}void postOrder(Node *T){ if(T->lchild!=NULL) { postOrder(T->lchild); } if(T->rchild!=NULL) { postOrder(T->rchild); } printf("%d ",T->c);}//插入节点Node *insert_tree(Node *T,int x){ if(T==NULL) { T = create(); T->c = x; } else if(x>T->c) { T->rchild = insert_tree(T->rchild,x); } else if(x<T->c) { T->lchild = insert_tree(T->lchild,x); } return T;}int main(){ int n; while(scanf("%d",&n)!=EOF) { Node *T = NULL; loc = 0; for(int i=0;i<n;i++) { int x; scanf("%d",&x); T = insert_tree(T,x); } preOrder(T); printf("\n"); midOrder(T); printf("\n"); postOrder(T); printf("\n"); } return 0;}
阅读全文
0 0
- 二叉排序树的创建、插入和遍历(代码)
- 二叉排序树的创建,插入,遍历
- 二叉排序树的插入、遍历和删除
- 二叉排序树的创建,插入和 删除操作
- C++二叉排序树的创建和插入
- 【数据结构树表的查找】二叉排序树详解和代码(生成、插入、查找、最大值、最小值、删除、中序遍历、销毁)
- java写二叉排序树的插入、查找和遍历
- 二叉排序树的创建与遍历
- 二叉排序树的创建和遍历与删除指定的节点
- 二叉排序树的相关操作(插入,查找,删除,遍历等)
- 二叉排序树的插入与遍历(例子是九度1201题)
- 二叉排序树的查询、插入的递归和非递归代码
- 二叉排序树的创建(结点的插入,删除等操作)
- 二叉排序树,完成创建节点,插入节点,删除节点,查找节点,中序遍历的功能
- 二叉排序树 插入 遍历 查找 (V0.2)
- 二叉排序树的插入和删除
- 树形结构的查找(二叉排序树-创建、查找、插入、删除)
- 二叉排序树的建立和遍历
- bzoj 3192: [JLOI2013]删除物品 树状数组
- 【转】内网福音-如何离线部署Rancher
- 【51Nod1055】最长等差数列
- 万能日志数据收集器 Fluentd
- day 17 vim介绍
- 二叉排序树的创建、插入和遍历(代码)
- OpenCV中的Mat函数
- python学习—Day17—类的重写,私有变量
- python学习笔记(二)
- 数据库多数据源配置
- Shuffle解密
- 11.7KNN
- gcc make和Makefile xshell基础
- 《七点三刻》,有价值的新闻早餐 2017年11月8日,星期三