线性链表的基知:
1、线性链表的链式存储结构称为线性链表,每一个元素都有2部分组成。分别为数据域、指针域
2、链式存储既可以表示线性结构,也可以表示非线性结构
3、线性链表在进行元素插入与删除时,不需要移动表中的元素
4、线性链表的在存储时,存储空间可以连续也可以不连续
5、在线性单链表中,只能由根结点开始,遍历到所以结点,而且顺序不能颠倒
6、在双向链表、循环链表中,可以从任何一个结点开始直接遍历到所以结点
7、循环链表、循环队列都是顺序存储结构
8、链表结点中具有两个指针域的数据结构可以说线性结构,也可以是非线性结构
9、除前驱和后继,每一个结点只要有大于1的前件和后件就属于非线性结构
10、链式存储比顺序存储更耗费空间,毕竟链式存储一半是存数据,一半是存指针
树的基本概念:
1、树是n(n>=0)个结点的有限集合T
2、二叉树:
(1)、二叉树是另一种树形结构,它的特点是每个结点至多有两棵子树,并且二叉树的子树有左右之分,不能任意颠倒。
(2)、二叉树的基本术语:
a、结点:表示树中的元素,包含数据项及若干子树的分支;
b、叶子结点:也叫终端结点,是度为0的结点;
c、分支结点:也叫子节点,度不为0的结点;
d、结点的度:拥有结点子树的个数;
e、树的深度:树中最大的结点层数;
(3)、二叉树的性质:
a、一棵非空二叉树的第i层上最多有2i-1个结点;(计算叶子结点数)
b、一棵深度为k的二叉树,最多有2k-1个结点;(计算总结点数)
c、一棵二叉树中度为0的结点总比度为2的多一个结点;(叶子比根多一个)
d、总结点数:叶子结点+字结点+度为1的结点;(自己理解的)
3、完全二叉树:
完全二叉树是指除最后一层外,每一层上结点数均达到最大值,而在最后一层上指缺失右边若干结点。
4、满二叉树:
在一棵二叉树中,如果所有分支结点都存在左右子树,并且所有叶子结点都在同一层上,这样的二叉树称为满二叉树。
1、一棵二叉树共有70个叶子结点与80个度为1的结点,则二叉树的总结点数是【A】
(A).219 (B).221
(C).229 (D).231
分析:度为1的结点80+叶子结点70+子节点69=219
2、某二叉树有n个度为2的结点,则该二叉树的叶子结点是【B】
(A).n+1 (B).n-1
(C).2n (D).n/2
3、在深度为7的满二叉树中,度为2的结点个数为【63】;叶子结点的个数是【64】
4、某二叉树共有400个结点,其中有100个度为1的结点,则该二叉树中的叶子结点数为【B】
(A).151
(B).不存在这样的二叉树
(C).150
(D).149
分析:叶子结点+子结点=总结点-度为1的结点===》300,因此设叶子结点为x,则子结点为x-1,则:x+x-1=300===》x301/2,因此不存在这样的二叉树
5、一棵深度为7的完全二叉树,总结点个数为125,问这个数的叶子结点个数为【B】
(A).62 (B).63
(C).64 (D).65
分析:这个题可以根据完满叉树做,深度为7,则满二叉树总结点是127个,则是完成二叉树深度为7,总结的数为125,则推理出度为1的结点为2个,因此设叶子结点为x,则子结点为x-1,得出x=63