- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 线性表
一、填空题
1、数据逻辑结构包括 线性结构 、 树型结构 、 图型结构 这三种类型,树形结构和图形结构合称为 非线性结构 。
2、在线性结构中,第一个结点 没有 前驱结点,其余每个结点有且只有 个前驱结点,最后一个结点 没有 后续结点,其余每个结点有且只有 一 个后续结点。
3、在顺序表中插入或删除一个元素,需要平均移动 一半 元素,具体移动的元素个数与 插入或删除的位置 有关。
4、在顺序表中,逻辑上相邻的元素,其物理位置 一定 相邻。在单链表中,逻辑上相邻的元素,其物理位置 不一定 相邻。
5、在带头结点的非空单链表中,头结点的存储位置由 头指针 指示,首元素结点的存储位置由 头结点的next域 指示,除首元素结点外,其它任一元素结点的存储位置由 其直接前趋结点的next域 指示。
6、阅读下列算法,并补充所缺内容。
void purge_linkst( ListNode *& la )
{
// 从头指针为 la 的有序链表中删除所有值相同的多余元素,并释放被删结点空间
ListNode *p,*q;
if(la==NULL) return;
q=la; p = la->link;
while (p)
{
if (p && ___(1)p->data!=q->data___) {q=p; p = p->link;}
else
{
q->link= ___(2)p->link___;
delete(p);
p=___(3)q->link___;
}
}//while
}// purge_linkst
二、选择题
1、在数据结构中,从逻辑上可以把数据结构分成 C 。
A、动态结构和静态结构 B、紧凑结构和非紧凑结构
C、线性结构和非线性结构 D、内部结构和外部结构
2、线性表的逻辑顺序与存储顺序总是一致的,这种说法 B 。
A、正确 B、不正确
3、线性表若采用链式存储结构时,要求内存中可用存储单元的地址 D 。
A、必须是连续的 B、部分地址必须是连续的
C、一定是不连续的 D、连续或不连续都可以
4、在以下的述叙中,正确的是 B 。
A、线性表的线性存储结构优于链表存储结构
B、二维数组是其数据元素为线性表的线性表
C、栈的操作是先进先出
D、队列的操作方式是先进后出
三、综合题
1、已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。
A、在P结点后插入S结点的语句序列是((4)、(1));
B、在P结点前插入S结点的语句序列是((7)、(11)、(8)、(4)、(1));
C、在表首插入S结点的语句序列是((5)、(12));
D、在表尾插入S结点的语句序列是((9)、(1)、(6)或(11)、(9)、(1)、(6))(其中6的位置可变);
(1)P->next=S;
(2)P->next=S->next->next;
(3)P->next=S->next;
(4)S->next=P->next;
(5)S->next=L;
(6)S->next=NULL;
(7)Q=P;
(8)while(P->next!=Q) P=P->next;
(9)while(P->next!=NULL) P=P->next;
(10)P=Q;
(11)P=L;
(12)L=S;
(13)L=P;
2、已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。
A、删除P结点的直接后继结点的语句序列是(11、3、14);
B、删除P结点的直接前驱结点的语句序列是(10、12、8、11、3、14);
C、删除P结点的语句序列是(10、12、7、3、14);
D、删除首元结点的语句序列是(12、11、3、14);
E、删除尾元结点的语句序列是(9、11、3、14)或(12、9、11、3、14);
(1)P=P->next;
(2)P->next=P;
(3)P->next= P->next ->next;
(4)P = P->next ->next;
(5)while(P->next!=NULL) P=P->next;
(6)while(Q->next!=NULL) {P=Q;Q=Q->next};
(7)while(P->next!=Q) P=P->next;
(8)while(P->next->next!=Q
文档评论(0)