简易非递归创建二叉树
来源:互联网 发布:移动互联网软件开发 编辑:程序博客网 时间:2024/06/03 09:11
一般来说创建一个二叉树,需要对push进入堆栈的元素进行标记,但这样代码就比较复杂,并且难以理解,这里我们换一个思路。
void crate(Bitree T1){ char a; cin>>a; stack s=stackcrate(); Bitree T,t; if(a=='#') T1=NULL; else { T1->data=a; push(s,T1); push(s,T1);// 这里我们每次push两个,代表左右儿子 } while(!empty(s)) { cin>>a; pop(s,T); if(a=='#') { if(T==getpop(s)) T->left=NULL; // 代码的核心,我们用getpop()来进行判断,如果相同说明是左儿子,反之右儿子! else T->right=NULL; } else { t=(Bitree)malloc(sizeof(struct tree)); t->data=a; if(T==getpop(s)) //同理! T->left=t; else T->right=t; push(s,t);push(s,t); } }}
1 0
- 简易非递归创建二叉树
- 非递归创建二叉树
- 非递归创建二叉树
- 非递归创建二叉树&非递归访问二叉树
- 二叉树的非递归创建
- 二叉树的创建|非递归遍历
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- 二叉树创建及遍历算法(递归及非递归)
- (c语言)比较两个字符串的长度
- 用Javascript实现checkbox全选、全不选
- invalid bound statement (not found)
- MSSQL_2017年4月最新全国手机号段手机归属地数据库360000条记录
- C++ sizeof的使用总结
- 简易非递归创建二叉树
- 线性支持向量机
- 2017暑期前端实习面经总结
- jstl标签
- IOS之C语言--9字符串
- 初学Linux系统最应该做对的4件事情[长文]
- Latex使用小结(2)
- python学习——模块
- Android基于高德地图poi的仿微信获取位置