《数据结构练习题》线性表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性表及其实现
1设一顺序表中元素值递增有序。写一算法,将元素x插到表中适当的位置,并保持顺序表的有序性,且分析算法的时间复杂度。
2设有两个按元素值递增有序的顺序表A和B,编一程序将A 表和B表归并成一个新的递增有序的顺序表C(值相同的元素均保留在C表中)。
3按下面两种情况分别编写算法删除顺序表中值相同的多余
元素:
(1)顺序表元素值递增有序;
(2)顺序表元素值无序。
4已知L是无表头结点的单链表,且P结点既不是首结点,也不是尾结点,试从下列提供的语句中选出合适的语句序列。
(1) 在P结点后插入S结点:__________
(2) 在P结点前插入S结点:__________
(3) 在表首插入S结点:__________
(4) 在表尾插入S结点:__________
① P->next = S;
② P->next = P->next->next;
③ P->next = S->next;
④ S->next = P->next;
⑤ S->next = L;
⑥ S->next = P;
⑦ S->next = NULL;
⑧ Q = P;
⑨ while (P->next != Q) P = P->next;
while (Q->next != NULL) Q = Q->next;
P = Q;
P = L;
L = S;
L = P;
5已知P结点是某双向链表的中间结点,试从下列提供的语句中选出合适的语句序列。
(1) 在P结点后插入S结点:______________
(2) 在P结点前插入S结点:______________
(3) 删除P结点的直接后继结点:______________
(4) 删除P结点的直接前驱结点:______________
(5) 删除P结点:______________
① P->next = P->next->next;
② P->prior = P->prior->prior;
③ P->next = S;
④ P->prior = S;
⑤ S->next = P;
⑥ S->prior = P;
⑦ S->next = P->next;
⑧ S->prior = P->prior;
⑨ P->prior->next = P->next;
P->prior->next = P;
P->next->prior = P;
P->next->prior = S;
P->prior->next = S;
P->next->prior = P->prior;
Q = P->next;
Q = P->prior;
free(P);
free(Q);
6设有两个线性表A和B皆是单链表存储结构。同一个表中的元素各不相同,且递增有序。写一算法,构成一个新的线性表C,使C为A和B的交集,且C中元素也递增有序。
7设有两个按元素值递增有序的单链表A和B,编一程序将A 表和B表归并成一个新的递增有序的单链表C(值相同的元素均保留在C表中)。
8设L为带头结点的单链表,按下面两种情况分别编写算法,删除表中值相同的多余元素。
(1) 顺序表元素值递增有序;
(2) 顺序表元素值无序。