数据结构第一次测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、判断题
1.线性表的逻辑顺序与存储顺序总是一致的。错
2.顺序存储的线性表可以按序号随机存取。对
3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。对
4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。对
5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。错
6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。对
7.线性表的链式存储结构优于顺序存储结构。错
8.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。对
9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。对
10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。错
二、填空题
1.对于顺序栈,在作进栈运算时,应先判别栈是否满,在作退栈运算时,应先判别栈是否空。当顺序栈中元素为n个,做进栈运算时发生上溢,则说明该栈的最大容量为n 。
2.一个栈的输入序列是1,2,3,…,n, 若输出序列第一个元素是n,则第i个元素是n-i+1 。
3.顺序表上逻辑上相临的元素的物理位置___是____(是/否)紧邻,单链表上逻辑上相临的元素的物理位置____否___(是/否)紧邻。
4.在含有n个元素的顺序表中,插入或删除一个元素,平均要移动___n____个元素,在含有n个元素的单链表.,插入或删除一个元素,平均要移动____n___个元素
5.已知L是带表头结点的单链表,其中,P结点既不是首元素,也不是尾结点,
a.删除P结点的直接后继结点的语句序列是_ (11) (3)_ (14)___________
b.删除P结点直接前驱结点的语句序列是___( 10)( 12)( 8)( 11)( 3)( 14)__________
c删除P结点的语句序列是______ (10)( 12)( 11)( 3) (14) __________
d删除首结点的语句序列是_______ (12)( 13)( 10)( 14)_________
(1) P=(*P).next; (2) (*P).next=P; (3) (*P).next=*((*P).next).next;
(4) P=*((*P).next).next; (5) while(P!=NULL) P=(*P).next;
(6) while((*P).next!=NULL) P=(*P).next; (7) while((*P).next!=Q) P=(*P).next;
(8) while(*((*P).next).next)!=Q) P=(*P).next; (9)Q=NULL: (10)Q=P;
(11) Q=(*P).next; (12) P=L; (13) L=(*L).next; (14) free(Q);
5.已知指针p指向双向链表中的一个结点(非首结点、非尾结点),则将结点s插入在p结点的直接后继位置的语句是s->next->prior=s;s->prior=p;p->next=s;;
6.用数组A[m]来存放循环队列q的元素,且它的头、尾指针分别为front和rear,队列满足条件(q->rear+1)%m==q->front,则队列中当前的元素个数为(rear–front+1+m)%m 。
7.顺序栈s存储在数组s->data[max]中,对s进行出栈操作,执行的语句序列是x=s->data[s->top]; 。
8.以下运算实现在循环队列中的初始化操作
void initqueue(seqqueue *q){q->front=0; q->rear=0 ;}
三、选择题
1.下列对于循环队列的说法,正确的是( A )。
A) 循环队列就是队列的顺序存储方式
B) 判断循环队列Q空的条件是:Q.rear==Q.front(即队头指针与队尾指针值相同)
C) 判断循环队列Q满的条件是:Q.rear=Q.front=0
D) 循环队列的存储不要求用一组地址连续的存储单元
2.在一个链栈中,已知s为栈顶指针(直接指向栈顶元素结点,无头结点),t为栈底指针,直接指向栈底元素,则插入r结点的操作为( B )。
A) t->next=r;t=r; B) r->next=s;s=r; C) s->next=r;s=r; D) r->next=t;
3.一个队列的入列序列是1,2,3,4,则队列的输出序列是( B )。
(A)4,3,2,1 (B)1,2,3,4 (C)1,4,3,2 (D)3,2,4,1
4.在一个链队中,假设f和r分别为队首和队尾指针,则插入s节点的运算时( B )。
A f->next=s;f=s
B r->next=s;r=s
C s->next=r;r=s
D s->next=f;f=s
5.循环队列是满队列的条件是(B )。
A Q.rear = Q.front
B (Q.rear+1)%maxsize==Q.front
C Q.rear= =0
D Q.rear – Q.front = = 0
6.栈结构通常采用的两种存储结构是( A )。
(A)线性存储结构和链表存储结构(B)散列方式和索引方式
(C)链表存储结构和数组(D)线性存储结构和非线性存储结构
7.判定一个顺序栈ST(最多元素为m0)为栈满的条件是( C )。
(A)ST-〉top!=0 (B)ST-〉top==0
(C)ST-〉top==m0 (D)ST-〉top==m0-1
8.线性表是( A ) 。
(A) 一个有限序列,可以为空;
(B) 一个有限序列,不能为空;
(C) 一个无限序列,可以为空;
(D) 一个无序序列,不能为空。
9. 线性表采用链式存储时,其地址(D) 。
(A) 必须是连续的;(B) 部分地址必须是连续的;
(C) 一定是不连续的;(D) 连续与否均可以
10.循环链表的主要优点是( D ) 。
(A)不在需要头指针了
(B)已知某个结点的位置后,能够容易找到他的直接前趋
(C)在进行插入、删除运算时,能更好的保证链表不断开
(D)从表中的任意结点出发都能扫描到整个链表
11.单链表中,增加一个头结点的目的是为了(C )。
(A) 使单链表至少有一个结点
(B)标识表结点中首结点的位置
(C)方便运算的实现
(D) 说明单链表是线性表的链式存储
12下列算法的时间复杂度是(B )。
for(i=1;i<=n;i+ +)
c[i]=i;
A 、(1)B、O(n)C、O(log2n)D、O(nlog2n)
13.在已知头指针的单链表中,要在其尾部插入一新结点,其算法的时间复杂度为(B )。
A、O(1)
B、O(log2n)
C、O(n)
D、O(n2)
14. 链栈与顺序栈相比,比较明显的优点是(D )。