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

6.9 KiB
Raw Blame History

若已知一个栈的入栈序列是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 和什么?

p->next=s;

线性表中元素的存储可以使用顺序表和 。

链表

数据结构中数据的关系通常有集合、 、树形结构、图状结构和网状结构。

数组

循环队列Q中判断队满的条件为 (最大空间MAXQSIZE、队头指针Q.front,队尾指针Q.rear)。

(Q.rear+1)%MAXQSIZE==Q.front;