数据结构第二章习题.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:5 大小:33KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

数据结构第二章习题.doc

数据结构第二章习题.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、单项选择题1.线性表是___。A.一个有限序列,可以为空B.一个有限序列,不可以为空C.一个无限序列,可以为空D.一个无限序列,不可以为空2.在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动个元素。A.n-iB.n-i+lC.n-i-1D.i3.线性表采用链式存储时,其地址_______。A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以4.从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较________个元素结点。A.n/2B.nC.(n+1)/2D.(n-1)/25.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是____。A.p->next=s;s->prior=p;p->next->prior=s;s->next=p->next;B.s->prior=p;s->next=p->next;p->next=s;p->next->prior=s;C.p->next=s;p->next->prior=s;s->prior=p;s->next=p->next;D.s->prior=p;s->next=p->next;p->next->prior=s;p->next=s;6.设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为______。A.p->next=p->next->next;B.p=p->next;C.p=p->next->next;D.p->next=p;7.在一个长度为n的顺序表中向第i个元素(0<i<n+l)之前插入一个新元素时,需向后移动______个元素。A.n-iB.n-i+lC.n-i-1D.i8.在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行A.s->next=p->next;p->next=sB.q->next=s;s->next=pC.p->next=s->next;s->next=pD.p->next=s;s->next=q9.以下关于线性表的说法不正确的是_____。A.线性表中的数据元素可以是数字、字符、记录等不同类型。B.线性表中包含的数据元素个数不是任意的。C.线性表中的每个结点都有且只有一个直接前趋和直接后继。D.存在这样的线性表:表中各结点都没有直接前趋和直接后继。二、填空题1.线性表是一种典型的________结构。2.在一个长度为n的顺序表的第i个元素之前插入一个元素,需要后移___个元素。3.顺序表中逻辑上相邻的元素的物理位置____。4.要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需______一个位置,移动过程是从_______向_______依次移动每一个元素。5.在线性表的顺序存储中,元素之间的逻辑关系是通过_____决定的;在线性表的链接存储中,元素之间的逻辑关系是通过______决定的。6.在双向链表中,每个结点含有两个指针域,一个指向______结点,另一个指向______结点。7.当对一个线性表经常进行存取操作,而很少进行插入和删除操作时,则采用______存储结构为宜。相反,当经常进行的是插入和删除操作时,则采用_____存储结构为宜。8.顺序表中逻辑上相邻的元素,物理位置______相邻,单链表中逻辑上相邻的元素,物理位置______相邻。三、简答题下述算法的功能是什么?LinkList*Demo(LinkList*L){//L是无头结点的单链表LinkList*q,*p;if(L&&L->next){q=L;L=L->next;p=L;while(p->next)p=p->next;p->next=q;q->next=NULL;}return(L);}四、算法设计题1.设计在无头结点的单链表中删除第i个结点的算法。2.在单链表上实现线性表的求表长ListLength(L)运算。3.设计将带表头的单循环链表逆置(反序)算法。第一章习题参考答案一、O()2.O()3.O(n)4.O(n)5.O(n)二、voidDivArray(int*pArray,intsize){if(size<=0)return;if(pArray[0]==0)return;for(inti=size-1;i>=0;i--){pArray[i]/=pArray[0];}