Files
data-structures-and-algorithms/期中测试.md
T

281 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为
- A.不确定
- B.i
- C.n-i
- ==D.n-i+1==
判定以 head 为头指针的不带头结点的单链表只有一个结点的条件是( )。
- ==A.head->next= =NULL==
- B.head!=NULL
- C.head= =NULL
- D.head->next= =head
- 对于顺序存储的长度为n的线性表,在第i个位置插入一个元素需要移动( )个元素。其中,0≤i<n。
- - A.i
- B.n-i-1
- C.n-i+1
- ==D.n-i==
- 允许对队列进行的操作有( )。
- - ==A.在队头元素之前插入元素==
- B.取出最近进队的元素
- C.删除队头元素
- D.对队列中的元素排序
- 在班级信息管理表中,为了能按班级学号实现快速查询本班级学生信息的算法,采用( )更好。
- - ==A.顺序表==
- B.链表
- 设某顺序表中第一个元素的地址是 Base ,每个结点占 m 个单元,则第 i 个结点的地址为( )。
- - A.Base+(i+1)m
- B.Baseim
- ==C.Base+(i1)m==
- D.Base+im
栈在 中有所应用。
- ==A.前三个选项都有==
- B.表达式求值
- C.递归调用
- D.函数调用
若用一个大小为 6 的数组来实现循环队列,且当前 rear 和 front 的值分别为 0 和 3 ,当从队列中删除一个元素,再加入两个元素后, rear 和 front 的值分别为( )。
- A.1 和 4
- ==B.1 和 5==
- C.2 和 4
- D.2 和 3
一个顺序表里已经有10个元素,最大容量是100,欲在顺序表中插入一个元素,则不合理的插入位置是( )。
- ==A.15==
- B.11
- C.5
- D.1
判定以head为首指针的不带头结点的单链表为空的条件是( )。
- ==A.head= =NULL==
- B.head->next= =NULL
- C.head!=NULL
- D.head->next= =head
- 线性表是( )。
- - ==A.一个有限序列,可以为空==
- B.一个有限序列,不可以为空
- C.一个无限序列,不可以为空
- D.一个无限序列,可以为空
- 一个顺序表里已经有 5 个元素,最大容量是 100 ,现插入 2 个元素,删除 3 个元素,该顺序表的长度是( )。
- - A.5
- ==B.4==
- C.不确定
- D.1
- 下面关于串的的叙述中, 是不正确的。
- - A.模式匹配是串的一种重要运算
- B.串既可以采用顺序存储,也可以采用链式存储
- ==C.空串是由空格构成的串==
- D.串是字符的有限序列
- 能够满足快速完成插入和删除运算的线性表存储结构是( )。
- - A.散列存储
- ==B.链式存储==
- C.有序存储
- D.顺序存储
- 设进栈次序为ABCDE,( )是不可能得到的出栈序列。
- - A.ABCDE
- ==B.EABCD==
- C.BCDEA
- D.EDCBA
- 铁路进行列车调度时,常把站台设计成栈式结构,若进站的六辆列车顺序为:1,2,3,4,5,6, 不能出栈序列是( )。
- - A.1 2 3 4 5 6
- B.3 2 5 6 4 1
- C.1 3 5 4 2 6
- ==D.4 3 5 6 1 2==
- 在数据结构中,从逻辑上可以把数据结构分成
- - A.线性结构和非线性结构
- ==B.动态结构和静态结构==
- C.内部结构和外部结构
- D.紧凑结构和非紧凑结构
- 线性表的顺序存储最适合于实现( )运算。
- - A.查找
- B.插入
- ==C.由下标定位==
- D.删除
- 顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是
- - A.110
- B.100
- ==C.108==
- D.120
- 在一个单链表中,若删除p所指结点的后续结点,则执行( )。
- - A.p=p->next->next
- B.p->next=p->next
- C.p=p->next;p->next=p->next->next
- ==D.p-next=p->next->next==
- 数组S[M]存储一个栈,top为栈顶指针。如果条件top= =-1表示栈空,在栈不空的情况下,栈顶元素为( )。
- - A.S[++top]
- B.S[top-1]
- C.S[top+1]
- ==D.S[top]==
- 对于链接存储的存储结构所占存储空间,以下选项描述正确的是( )。
- - ==A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针==
- B.分两部分,一部分存放结点值,另一部分存放结点所占单元数
- C.只有一部分,存储表示结点间关系的指针
- D.只有一部分,存放结点值
- 已知last指向单链表的尾结点,将 s 所指结点加在表尾,以下选项描述正确的是( )。
- - ==A.s->next=last, last->next=NULL,last=s;==
- B.last->next=s,s->next=NULL,last=s;
- C.s->next=NULL, last->next=s, s=last;
- D.s->next=s,last=s,last->next=NULL;
- 对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( )。
- - A.head→next==head
- B.head==NULL
- C.head!=NULL
- ==D.head→next==NULL==
- 线性表L在 情况下适用于使用链式结构实现。
- - A.L中结点结构复杂
- ==B.需不断对L进行删除插入==
- C.需经常修改L中的结点值
- D.L中含有大量的结点
- 循环队列存储在数组A[0..m]中,则入队时的操作为
- - A.rear=rear+1
- ==B.rear=(rear+1)%(m+1)==
- C.rear=(rear+1)%(m-1)
- D.rear=(rear+1)%m
在某个线性链表中在p节点后插入节点x,若s为指向插入节点x的指针,则指针修改语句为s->next=p->next 和什么?
```c
p->next=s;
```
线性表中元素的存储可以使用顺序表和 。
```中文(简体)
链表
```
数据结构中数据的关系通常有集合、 、树形结构、图状结构和网状结构。
```中文(简体)
数组
```
循环队列Q中判断队满的条件为 (最大空间MAXQSIZE、队头指针Q.front,队尾指针Q.rear)。
```c
(Q.rear+1)%MAXQSIZE==Q.front;
```