6.1二叉树的创建
来源:互联网 发布:php判断原生语句查询 编辑:程序博客网 时间:2024/06/06 01:15
六.Tree(树)
6.1二叉树的创建
理解了树的创建过程,对递归的理解就会更上一层楼。
(1)树结构的声明
# define OK 1typedef struct bintree{struct bintree *lchild;char data;struct bintree *rchild;}BiNode, *BiTree;BiTree t;//头结点指针
int bintree_creat(BiTree *q){char n;n = getchar();if(n == '#')*q = NULL;else{(*q) = (BiTree )malloc(len);(*q)->data = n;bintree_creat(&(*q) -> lchild);bintree_creat(&(*q) -> rchild);}return OK;}
(3)反思:源代码中BiTree *q,(&(*q) -> lchild),令人难以理解。这源于人们对循环的理解(科学证明,正常人容易理解3层以内循环)。这时,C++的 & 运算符就简洁明了,容易理解了。
int bintree_creat(BiTree &q){char n;n = getchar();if(n == '#')q = NULL;else{q = (BiTree )malloc(len);q->data = n;bintree_creat(q -> lchild);bintree_creat(q -> rchild);}return OK;}
(4)检验。
二叉树建立完成,到底成功了没,我们不知道。那就遍历一下喽,见下一章6.2二叉树的遍历(含建立的完整源代码)。
初次接触C++的&时不理解为什么引入 &(refrence),既然有了指针 * ,不都能解决 了吗?C写多了,发现(1)&确实比*安全;(2)&更人性化,使程序编写简单,更易理解。
0 0
- 6.1二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建。
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的创建
- 二叉树的 创建
- 二叉树的创建
- 二叉树的创建
- 数据结构【二叉树】 二叉树的创建
- 二叉树的二叉链表创建
- 二叉树的创建、遍历
- 完全二叉树的创建
- 平衡二叉树的创建
- ABCD*9=DCBA 问A、B、C、D各得多少???
- 程序员需要克服的10大障碍
- linux下创建oracle用户表空间
- 数据库水平拆分和垂直拆分区别(以mysql为例)
- Android:为什么声明控件和控件赋值要分开?
- 6.1二叉树的创建
- windows bat 开启关闭远程桌面
- 我是新生
- 使用PHP提供的CURL模块采集任意网页 已经封装一个类超级好用 请拿走
- [Android分享] 致自学的朋友们
- 记忆减退之---如何选择合适的电容
- Android笔记 notification
- UVA 674 - Coin Change
- 关于crontab无法编辑的问题