1、一个线性表第一个元素的存储地址是 100,每个元素的长度
为 2, 则第 5 个元素的地址是 ( B )。
(A)110 (B)108(C)100 (D)120
**第i个元素首地址是100+2*(i-1) **
2、向一个有 127 个元素的顺序表中插入一个新元素并保持原来
顺序不变,平均要移动(C )个元素。
(A)64(B)63 (C)63.5 (D)7
3、顺序存储结构是通过 ___B_____ 表示元素之间的关系的
4、对于顺序存储的线性表,访问结点和删除结点的时间复杂度分别为(A )。
***顺序存储可以实现“随机存取”,因此访问结点的时间复杂度为O(1),而插入、删除结点由于涉及到大量移动元素,故其时间复杂度为O(n)。***
选择:
1、线性表采用链式存储结构时,其地址 ( D)。
(A) 必须是连续的 (B) 部分元素的地址必须是连续的
(C) 一定是不连续的 (D) 连续与否均可以
本题考查线性表的存储结构,当线性表采用链式存储时,它是用节点来存储数据元素的,节点的空间可以是连续的,也可以是不连续的,因此,存储数据元素的同时必须存储元素之间的逻辑关系。
2、在一个单链表中,在 p 之后插入 s 所指结点,则执行 ( B)。
(A)s->next=p;p->next=s; (B) s->next=p->next;p->next=s;
(C)s->next=p->next;p=s; (D)p->next=s;s->next=p;
解释一:首先的保证p后面的一个节点不能断掉,应为是单链表,所以p后面的节点先要与新插入的s相连,s->next = p->next
然后在将s与p相连,p->next= s
解释二:s->next=p->next的意思是s在p->next的结点前面了,
p->next=s的意思是s在p结点的后面
3、在一个单链表中,若删除 p 所指结点的后续结点,则执行 ( A)
(A)p->next=p->next->next;
在一个单链表中,若要删除p结点的后续结点,只要将p的指针域指向p的后继的后继即可,即p↑.next=p↑.next↑.next。
(B)p=p->next; p->next=p->next->next;
(C)p->next=p->next;
(D)p =p->next->next;
4. 设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(A )。
A.q=p->next;p->data=q->data;p->next=q->next;free(q);
B.q=p->next;q->data=p->data;p->next=q->next;free(q);
C.q=p->next;p->next=q->next;free(q);
D.q=p->next;p->data=q->data;free(q);
5.若线性表最常用的操作是存取第i个元素及前驱的值,则采用(D )存储方式节省时间。
单链表 B.双链表 C.单循环链表 D.顺序表
同时在顺序表中查找第i个元素的前趋也很方便。单链表和单循环链表既不能实现随机存取,查找第i个元素的前趋也不方便,双链表虽然能快速查找第i个元素的前趋,但不能实现随机存取。
6.设一个链表最常用的操作是从末尾插入节点和删除尾结点,则选用(D )最节省时间。
A.单链表 B.单循环链表
C.带尾指针的单循环链表 D.带头结点的双循环链表
双向循环链表的头指针的pre指向的就是尾部,从头指针向前移动一次指针即可!
简单题
1.动态顺序表和动态链式表各有哪些优缺点?
答:动态顺序存储:
优点:存储密度大,存储空间利用率高,可随机存取。
结点空间可动态申请追加。
缺点:插入或删除元素时不方便。
动态链式存储:
优点:插入或删除元素时很方便,使用灵活。
结点空间可以动态申请和释放;
缺点:存储密度小,存储空间利用率低,非随机存取。
2.顺序表、链表各自的使用场合?
答:顺序表适宜于做查找这样的静态操作;
链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,
则采用顺序表;
若线性表的长度变化较大,且其主要操作是插入、
删除操作,则采用链表。