1 #include 2 #include 3 #define INIT_STACK_SIZE 100 4 #define STACKINCREMENT 10 5 6 //*****二叉树的二叉链表存...
分类:
编程语言 时间:
2014-11-30 22:57:43
阅读次数:
305
周末要给老师写个期中考试的题解
最后两道题全都是关于二叉树的一些算法
层序遍历二叉树直接输入数据,建立二叉排序树,利用队列层序输出即可,没什么难度
贴下自己的代码
//功能:层序遍历二叉树
//时间:2014-11-23
#include
#include
using namespace std;
//二叉链表数据结构定义
#define TElemType int
typedef...
分类:
其他好文 时间:
2014-11-23 17:38:55
阅读次数:
175
通过考察各种二叉链表,不管儿叉树的形态如何,空链域的个数总是多过非空链域的个数。准确的说,n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n+1个。如下图所示。
因此,提出了一种方法,利用原来的空链域存放指针,指向树中其他结点。这种指针称为线索。
记ptr指向二叉链表中的一个结点,以下是建立线索的规则:
(1)如果ptr->lc...
分类:
其他好文 时间:
2014-11-16 17:23:11
阅读次数:
230
二叉链表存储结构的许多基本操作都采用了递归函数,因为二叉树的层数是不定的,正确采用递归函数可简化编程。递归函数的特点:一是降阶的,二是有出口的。递归编程是简单的,但是效率是不高的,因此,基本操作既要熟悉递归编程,又要熟悉非递归编程。...
分类:
其他好文 时间:
2014-11-08 15:15:01
阅读次数:
491
计算二叉树的深度,结点的个数。
//算法5.5 计算二叉树的深度,结点的个数。
#include
using namespace std;
//二叉树的二叉链表存储表示
typedef struct BiNode
{
char data; //结点数据域
struct BiNode *lchild,*rchild; //左右孩子指针
}BiTNode,*...
分类:
其他好文 时间:
2014-11-06 20:07:40
阅读次数:
181
看了一下树的定义,一些基本的操作,遍历,获取节点数,获取深度等等。。这里参考了西电版的数据结构,基本用的都是递归实现的。很多说明代码中都有,每个方法我都测了一下,这里我把节点类BTreeNode作为内部类放到了BTree中,方便一下。其实可以拿出来。还有我用的是二叉链表实现的树的存储,因为java ...
分类:
编程语言 时间:
2014-11-03 22:17:08
阅读次数:
200
一、线索二叉树的原理
通过考察各种二叉链表,不管儿叉树的形态如何,空链域的个数总是多过非空链域的个数。准确的说,n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n+1个。如下图所示。
因此,提出了一种方法,利用原来的空链域存放指针,指向树中其他结点。这种指针称为线索。
记ptr指向二叉链表中的一个结点,以下是建立线索的规...
分类:
其他好文 时间:
2014-10-26 18:30:03
阅读次数:
184
6.3线索二叉树(二叉树的线索化)
问题引入:以二叉链表作为存储结构时,只能得到结点的左、右孩子的信息,不能得到直接前驱、后继的信息。
问题解决:将二叉树线索化。
实现原理:n个结点的二叉树具有n+1个空指针域,利用这些空指针域存储结点的前驱、后继信息。
实质:线索化的实质是将二叉链表中的空指针改为指向前驱、后继的线索。
(1)二叉树的存储表示
enum {link,threa...
分类:
其他好文 时间:
2014-10-21 17:45:55
阅读次数:
207
我们在上一章中,学习了二叉树的数据结构。因为二叉树的特殊性,它不同于普通的树,所以可以使用顺序存储结构来存储。但是,用顺序存储结构会存在浪费空间的弊端。之后,我们学习了二叉链表。用链式存储结构存储树,结点结构为一个数据域data,两个指针域lchild、rchild。树的数据结构讲完了,但是没有讲怎...
分类:
其他好文 时间:
2014-10-16 18:33:42
阅读次数:
269
1. 问题描述:先序非递归建立一颗以二叉链表为存储结构的二叉树。例如建立如下所示的一颗二叉树 A / \ B E / \ / C D F ...
分类:
其他好文 时间:
2014-10-15 22:49:51
阅读次数:
212