数据结构雷人知识点小总结

来源:互联网 发布:新网站如何做seo 编辑:程序博客网 时间:2024/05/01 08:19

1.     循环链表为空的标志是:P->NEXT是否为空;

而双线链表为空的标志是:头结点的前驱指针和后继指针均指向它本身;双线链表中的头结点的前驱指向最后一个节点,会后一个节点的后继指向头结点。

2.静态链表的指针实际上是数组的下标索引。

3.  头指针是指向链表中第一个结点的指针;首元结点是指链表中存储第一个数据元素的结点;头结点是在首元结点之前附设的一个结点,该结点不存储数据元素,其指针域指向首元结点,其作用

主要是为了方便对链表的操作。它可以对空表、非空表以及首元结点的操作进行统一处理;在单链表中设置头结点的作用是插入和删除首元结点时不用进行特殊处理。

4. 栈为空的标志是:TOP=BASE=NULL;在非空栈中,栈顶指针始终指在栈顶元素的下一个位置上。

5. 栈是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算。队列也是一种运算受限的线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删。

6. 队列中,允许插入的一端叫做队尾,允许删除的一端则称为对头。

7. 双端队列是限定插入和删除操作在表的两端进行的线性表;如果限定双端队列从某个端点插入的节点只能从该端点删除,则该双端队列就蜕变成两个栈底相连接的栈了。

8. 队列的链式表示是链队列;队列的顺序表示是循环队列。

9. 链队列和线性链表类似也有一个头节点,头指针指向头结点,空的链队列的判断条件是头指针和尾指针均指向头结点。链队列的操作

即为单链表的插入和删除的特殊情况。

10. 一般情况下,删除队列头元素时仅需修改头结点中的指针,但当队列中最后一个元素被删除后,队列尾指针也丢失了,因此需对队列尾指针重新赋值。

11. 循环队列中,队列非空的标志为头指针始终指向队列的头元素,而尾指针始终指向队列尾元素的下一个位置。

12 . 循环队列为空的条件是:(Q.rear+1)﹪MAXSIZE == Q.front。

13. 二叉树的顺序存储结构仅适用于完全二叉树,对于一般的二叉树很可能会造成空间的浪费。

14. 数的双亲表示法本质上使用的是静态数组(本质是静态链表);一个域是数据域,另一个域是其双亲在数组中的相对位置。找双亲方便,是一种顺序存储结构,要找孩子节点序遍历整个结构。

15. 用双亲表示法可以求得数的深度。方法是向上找双亲,并判断双亲的双亲是否为-1;若不是,树深度加一,直到其祖先的双亲标志域为-1为止,并及时更新树的深度。

16. 数的孩子表示法的特点是顺序加链式存储结构,找孩子容易,找双亲困难。

17. 孩子兄弟表示法又称二叉树表示法,本质上与二叉链表表示法一致;每个节点有两个指针域,分别为firstchildnextsibling

18. 含有n个节点的不相似的二叉树有(1/n+1)C2n/n棵树。给定节点的前序序列和中序序列可唯一确定一棵二叉树。

原创粉丝点击