顺序表
考察不同顺序表操作的时间复杂度
- 线性表是具有n个数据元素的有限序列。
- 线性表的特性:数据类型相同,有穷性
- 除第一个节点外,每个节点都有一个前驱,除最后一个节点外,每个节点都有一个后继
- 顺序存储的优点是存储密度大,查找方便,缺点是插入删除不方便
- 线性表的顺序存储是一种随机存取的存储方式,利用首地址加下标可直接对值进行读取
- 一个线性表最常用的操作是存取任一指定序号的元素并在最后进行插入删除操作,则利用(顺序表)存储方式可以节省时间。
- 若长度为n的非空线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,i的合法值应该是(
1
≤
i
≤
n
+
1
1\leq i\leq{n+1}
1≤i≤n+1 )。
8.顺序表是连续空间,链表是不连续空间
链表
考察链表操作的过程和地址的指向
- 顺序存储和链式存储没有优劣之分,根据算法要求灵活使用,但链式存储结构比顺序存储结构能更方便地表示各种逻辑结构
- 对于一个线性表既要求能够进行较快速地插入和删除,又要求存储结构能反映数据之间的逻辑关系,则应该用( )。
链式存储方式 - 静态链表需要分配较大的连续空间,插入和删除不需要移动元素
- 若用单链表来表示队列,则应该选用带尾指针的循环链表
- 删除最后一个链表元素时,就算设置尾指针,也无法删除最后一个节点,也只能从头结点往后遍历,删除最后一个节点,时间复杂度为O(n)
- 设对n(n>1)个元素的线性表的运算只有4种:删除第一个元素;删除最后一个元素;在第一个元素之前插入新元素;在最后一个元素之后插入新元素,则最好使用(只有头结点指针没有尾结点指针的循环双链表)。
- 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构为( 静态链表)。
现将f存放于1014H处并插入单链表,若f在逻辑上位于a和e之间,则a,e,f的“链接地址”依次是( 1014H 1004H 1010H)。
解析:a->e
a->next = 1010H e->next = 1004H
a->f->e
a->next = 1014H f->next = 1010H e->next = 1004