精品文档---下载后可任意编辑一、简答题1、 链表:链表就是一串存储数据的链式结构
链式的优点在于,每个数据之间都是相关联的
2、 线性结构:线性结构是一个有序数据元素的集合
常用的线性结构有:线性表,栈,队列,双队列,数组,串
3、 树与二叉树二叉树是每个结点最多有两个子树的有序树;树是由 n(n>=1)个有限节点组成一个具有层次关系的集合
树和二叉树的 2 个主要差别:1
树中结点的最大度数没有限制,而二叉树结点的最大度数为 2;2
树的结点无左、右之分,而二叉树的结点有左、右之分
4、 堆堆通常是一个可以被看做一棵树的数组对象
堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树
5、 二叉排序树二叉排序数的(递归)定义:1、若左子树非空,则左子树所有节点的值均小于它的根节点;2、若右子树非空,则右子树所有节点的值均大于于它的根节点;3、左右子树也分别为二叉排序树
二、应用题1、 树与二叉树① 前中后序遍历序列一、已知前序、中序遍历,求后序遍历例:前序遍历: GDAFEMHZ 中序遍历: ADEFGHMZ画树求法:第一步,根据前序遍历的特点,我们知道根结点为 G第二步,观察中序遍历 ADEFGHMZ
其中 root 节点 G 左侧的 ADEF 必定是 root 的左子树,G右侧的 HMZ 必定是 root 的右子树
第三步,观察左子树 ADEF,左子树的中的根节点必定是大树的 root 的 leftchild
在前序遍历中,大树的 root 的 leftchild 位于 root 之后,所以左子树的根节点为 D
第四步,同样的道理,root 的右子树节点 HMZ 中的根节点也可以通过前序遍历求得
在前序遍历中,一定是先把 root 和 root 的所有左子树节点遍历完之后才会遍历右子树,并且遍历的左子树的第一个节点就是左子树的根