构建二叉排序树(非递归)
来源:互联网 发布:linux c 开发环境 编辑:程序博客网 时间:2024/04/28 22:32
大意:构建一个简单的int型二叉排序树,并用中序遍历实现升序降序输出。
代码如下:
#include<stdio.h>#include<stdlib.h>#include<time.h>#include<iostream>#include<algorithm>#include<queue>using namespace std;typedef struct Node{int data;Node *l,*r;}Node,*pre;void travel(pre T){if(T){travel(T->l);printf("%3d",T->data);travel(T->r);}}void travel1(pre T){if(T){travel1(T->r);printf("%3d",T->data);travel1(T->l);}}void creat_tree(pre &T){int n,e;int flag;printf("请输入节点数\n");scanf("%d",&n);printf("请输入%d个无序的数\n",n);scanf("%d",&e);T->data=e;n--;Node *p;Node *q;while(n--){scanf("%d",&e);p=T;while(p){if(e>p->data){q=p;p=p->r;flag=0;}else if(e<p->data){q=p;p=p->l;flag=1;}}p=new Node;p->data=e;p->l=p->r=NULL;if(flag)q->l=p;elseq->r=p;}}int main(){pre T;T=new Node;T->l=T->r=NULL;creat_tree(T);travel(T);//升序printf("\n");travel1(T); //降序 return 0;}
0 0
- 构建二叉排序树(非递归)
- 题目1467:二叉排序树 (非递归与递归)
- JAVA二叉排序树的建立,遍历(递归,非递归)
- 二叉排序树(BST)的查找算法(非递归算法)
- 二叉排序树(BST):建立,遍历(前中后),判定,查找(递归+非递归)
- 二叉排序树总结(插入,搜索,排序,中序遍地,递归,非递归)
- java语言实现二叉排序树(结点的增、删、查、改,递归、非递归遍历)
- 二叉排序树的查询、插入的递归和非递归代码
- 二叉排序树中查找元素的递归和非递归写法
- 完全非递归方式解决二叉排序树向双向链表的转换(标准注释)
- 构建二叉树(前中序构建105,中后序构建106)--非递归的方法值得研究
- 递归构建二叉树---中序遍历二叉树(递归与非递归)
- 如何使用非递归算法实现二叉排序树的建立
- 构建二叉树(据后序遍历序列)---后续遍历二叉树(递归与非递归)
- 二叉树(利用栈和队列实现递归和非递归遍历,构建等)
- 构建单链表的递归和非递归版本(C++版)
- 二叉树构建以及前中后序遍历(递归和非递归)Java实现
- 递归和非递归的方法往二叉排序树中插入新的节点
- C——指针与数组名的区别
- c++ STL “multiset”
- React-Native-Android环境搭建
- Linux基于Socket图形界面群聊软件
- 免费的代码-MFC中的文档视图结构
- 构建二叉排序树(非递归)
- CSS——创建链接框架
- 数组名与指针的区别的深入探讨
- 杭电OJ2011 C++
- 【Android源码学习】事件分发机制
- Not an ISO 8859-1 character: 汉
- 后端培训资料
- 【浙江理工大学2016年新生赛暨全国新生邀请赛】 E 校庆 ZSTUPJ4242 【坑爹的日期计算】
- Python小练习