Romi-知行合一

轻轻的风轻轻的梦,轻轻的晨晨昏昏, 淡淡的云淡淡的泪,淡淡的年年岁岁。
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

2012年8月30日

摘要: 构造和使用二叉树后,将二叉树的释放,需要将存储二叉树节点的内存空间释放掉,最后将二叉树置NULL。根据前面一篇文章中二叉树的遍历可以得到启示,遍历是将节点数据元素找出来,同样利用便利的思想,也可以将节点指向的内存空间释放掉。这里需要注意的问题时,释放的先后问题,根节点必须在左子树和右子树的后面释放,因此,利用后续遍历的方法可以释放掉二叉树中多有节点的存储空间。如下代码: 1 /释放二叉树的内存空间,将二叉树置空 2 void BTreeSetNull(BTree *tree) 3 { 4 if(tree==NULL) 5 { 6 return; 7 } ... 阅读全文

posted @ 2012-08-30 22:11 romi 阅读(9698) 评论(0) 推荐(2) 编辑

摘要: 前面一篇文章单独说了二叉树的构建,二叉树构建好后,接下来就有二叉树的遍历问题,即读出二叉树中所有的节点数据。三种遍历方法:前序遍历,中序遍历,后序遍历。前序遍历:先访问根节点,然后前序遍历左子树,最后前序遍历右子树中序遍历:先中序遍历左子树,然后访问根节点,最后中序遍历右子树后续遍历:先后序遍历左子树,然后后序遍历右子树,最后访问根节点由上面的遍历步骤可以看出三者的差别就是根节点访问顺序的不同。如果将递归方式构建二叉树的过程理清楚了,那么二叉树的遍历问题就比较容易理解。这里使用最容易理解的递归方法遍历二叉树,代码如下: 1 #include<stdio.h> 2 #include& 阅读全文

posted @ 2012-08-30 21:49 romi 阅读(1280) 评论(0) 推荐(1) 编辑

摘要: 树是一种非线性的数据结构,树有根节点,子树等概念。二叉树(Binary Tree):每个节点最多有两颗子树,并且子树有左右之分。概念:树的深度,满二叉树,完全二叉树,树的节点树二叉树包括顺序存储和链式存储,这里只说链式存储。二叉树的每个节点和双链表有些类似,但是树的结构要比双链表复杂,在构造树的过程中涉及到递归调用的问题,递归的问题往往是很复杂的问题,因此,这里单独说二叉树的构建。国际惯例,先上代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5 //定义二叉树 6 typ 阅读全文

posted @ 2012-08-30 11:51 romi 阅读(16479) 评论(0) 推荐(3) 编辑