树和二叉树
文章平均质量分 59
夜深人静码代码
这个作者很懒,什么都没留下…
展开
-
树表的查找——平衡二叉树
一、平衡二叉树的相关概念1、为了提高形态不均衡的二叉排序树的查找效率,应做“平衡化”处理,将二叉树变成平衡二叉树。2、平衡二叉树的定义平衡二叉树又称AVL树。一棵平衡二叉树或者是空树,或者是具有下列性质的二叉排序树:①左子树与右子树的高度之差的绝对值小于等于1;②左子树和右子树也是平衡二叉排序树。3、为了方便起见,给每个结点附加一个数字,给出该结点左子树与右子树的高度差。这个数字称为结点的平衡因子(BF) 。 平衡因子=结点左子树的...原创 2022-05-05 17:25:18 · 1015 阅读 · 0 评论 -
遍历二叉树的递归算法
目录一、遍历二叉树的相关概念二、四种遍历二叉树的方式三、遍历二叉树的算法四、遍历算法的分析一、遍历二叉树的相关概念1、遍历定义:顺着某 一条搜索路径巡访二叉树中的结点,使得每个结点均被访问一次,而且仅被访问一次(又称周游)。“访问”的含义很广,可以是对结点作各种处理,如:输出结点的信息、修改结点的数据值等,但要求这种访问不破坏原来的数据结构。2、遍历目的:得到树中所有结点的一个线性排列。3、遍历用途:它是树结构插入、 删除、修改、查找和排序运算的前提,是二叉树...原创 2022-05-04 09:35:31 · 1637 阅读 · 0 评论 -
二叉树的相关概念以及存储结构
目录一、二叉树的相关概念二、满二叉树三、完全二叉树四、二叉树的顺序存储结构五、二叉树的链式存储结构一、二叉树的相关概念1、二叉树的定义:二叉树是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的分别称作这个根的左子树和右子树的二叉树组成。2、二叉树的特点:①每个结点最多有俩孩子(二叉树中不存在度大于2的结点)。②子树有左右之分,其次序不能颠倒。③二叉树可以是空集合,根可以有空的左子树或空的右子树。3、二叉树的5种基本形原创 2022-05-03 09:03:06 · 755 阅读 · 0 评论 -
顺序表的算法
一、顺序表的初始化1、顺序表的初始化操作就是构造一个空的顺序表。初始化也就是为顺序表分配地址空间。2、算法步骤:①为顺序表L动态分配一个预定义大小的数组空间,使elem指向这段地址空间的基地址。②将表的当前长度设为0。3、算法描述Status InitList(SqList &L){//构造一个空的顺序表LL.elem=new ElemType[MAXSIZE]; //为顺序表分配一个大小为MAXSIZE的数组空间if(!L.elem) exit(OVERFLOW)原创 2022-04-18 19:47:03 · 4024 阅读 · 0 评论 -
线索二叉树
一、线索二叉树的相关概念1、由于二叉树链表中空指针域的数量较多:具有n个结点的二叉链表中,一共有2n个指针域;因为n个结点中有n-1个孩子,即2n个指针域中,有n-1个用来指示结点的左右孩子,其余n+1个指针域为空。2、线索二叉树的定义:如果某个结点的左孩子为空,则将空的左孩子指针域改为指向其前驱;如果某结点的右孩子为空,则将空的右孩子指针域改为指向其后继——这种改变指向的指针称为 “线索"。加上了线索的二叉树称为线索二叉树,对二叉树按某种遍历次序使其变为线索二叉树的过程叫线索化。3、研究线索二原创 2022-10-07 20:49:04 · 885 阅读 · 0 评论 -
二叉树遍历算法的应用
一、二叉树遍历算法的应用——二叉树的创建1、按先序遍历序列建立二叉树的二叉链表例如:已知先序序列为:ABCDEGF,按照二叉树先序方式建立可能会建立出两种不同的二叉树,如下图所示:因此为了避免这种情况,我们可以补充一些空结点,补充空结点过后这两棵树接完全不一样了,因为补充的空结点的位置不一样。可用#号表示空结点。2、对下图所示二叉树按下列顺序读入字符:ABC##DE#G##F### 算法描述:Status CreateBiTree(BiTree &am......原创 2022-07-19 10:06:52 · 2801 阅读 · 0 评论 -
遍历二叉树的非递归算法
一、二叉树中序遍历的非递归算法的关键和思路1、二叉树中序遍历的非递归算法的关键:在中序遍历过某结点的整个左子树后,如何找到该结点的根以及右子树。2、基本思路:基本思路:(1)建立一个栈(2)根结点进栈,遍历左子树(3)根结点出栈,输出根结点,遍历右子树。3、算法描述Status InOrderTraverse (BiTree T){BiTree p;InitStack(S);p=T;while(p || !StackEmpty(S)){if(p) {Push(S,p); p原创 2022-07-19 10:02:51 · 666 阅读 · 0 评论 -
树的初步认识
一、树的定义1、树(Tree)是n (n≥0)个结点的有限集。①若n= 0,称为空树;②若n> 0,则它满足如下两个条件:(1)有且仅有一个特定的称为根(Root)的结点;(2)其余结点可分为m (m≥0)个互不相交的有限集T1, T2, T3,...,Tm,其中每一个集合本身又是一棵树,并称为根的子树(SubTree)。二、树的基本术语1、相关术语如下图所示:2、森林:是m(m≥0)棵互不相交的树的集合。把根结点删除树就变成了森林。一棵树可以看成是一个原创 2022-04-10 14:49:12 · 826 阅读 · 0 评论