重要概念
1. 删除长度为n的顺序表的第i个数据元素之前需要移动元素中的n-i个元素。
2. 对长度为n的线性表采用顺序查找,在等概率的条件下,查找成功的平均检索长度为(n+1)/2。在长度为n的顺序表中删除第i(1≤i≤n)个数据元素时需要移动n-i个元素,在长度为n的顺序表中的第i(1≤i≤n)个元素之前插入一个新元素,需要移动n-i+1个数据元素。
3. 当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度取线性表中的元素时,应采用链式存储结构。
4. 线性表L={a1,a2,...,a3}用数组表示,假设删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是(n-1)/2。
5. 在长度为n的线性表中插入一个元素,采用顺序存储结构的时间复杂度为O(n);采用链式存储结构的时间复杂度为O(1)。
6. 带头结点的双向循环链表L为空表的条件是L→prior==L→next==L;带头节点的双向循环链表L中只有一个元素结点的条件是L→next→next==L&&L→prior→prior==L&&L→next!=L。
7. 在单链表中设置头节点的作用为:在有头结点后,插入元素和删除元素的算法可以统一了,不再需要判断是否在第一个元素之前插入和删除第一个元素。另外,不论链表是否为空,链表指针不变。(有待验证)
8. 顺序存储时通过结点物理上相邻表示元素之间的关系,链式存储结构是通过结点指针表示元素之间的关系。
9. 对于双向链表,在两个结点之间插入一个新结点需要修改的指针共有4个,单链表2个。
10. 循环单链表的最大优点是:从链表中任何一个结点出发都可访问到链表中的每个元素。
11. 在单链表L中,指针p所指结点有后继结点的条件是:p→next!=null。
12. 判断带头结点的单循环链表L仅有一个元素结点的条件是L→next→next==L&&L→next!=L
13. 根据线性表的链式存储结构中每个结点包含的指针个数,将线性表分为单链表和双链表;而又根据指针的连接方式,链表又可分为动态链表和静态链表。