一 概论
选择
1、( )是数据的基本单位。 A、 数据结构 B、数据元素 C、数据项 D、数据类型
2、以下说法不正确的是( )。 A、数据结构就是数据之间的逻辑结构。 B、数据类型可看成是程序设计语言中已实现的数据结构。
C、数据项是组成数据元素的最小标识单位。 D、数据的抽象运算不依赖具体的存储结构。
3、学习数据结构主要目的是( )。 A、处理数值计算问题 B、研究程序设计技巧 C、选取合适数据结构,写出更有效的算法。 D、是计算机硬件课程的基础。
4、一般而言,最适合描述算法的语言是( )。
A、自然语言 B、计算机程序语言 C、介于自然语言和程序设计语言之间的伪语言 D、数学公式
5、通常所说的时间复杂度指( )。 A、语句的频度和 B、算法的时间消耗 C、渐近时间复杂度 D、最坏时间复杂度
6、A算法的时间复杂度为O(n^3),B算法的时间复杂度为O(2^n),则说明(
)。 A、对于任何数据量,A算法的时间开销都比B算法小
B、随着问题规模n的增大,A算法比B算法有效 C、随着问题规模n的增大,B算法比A算法有效 D、对于任何数据量,B算法的时间开销都比A算法小
填空
1、数据的( )结构依赖于计算机语言.
2、数据的逻辑结构可分为线性结构和(
)结构。
3、算法的时间复杂度与问题的规模有关外,还与输入实例的(
)有关。
4、常用的四种存储方法是什么?
5、常见的数据的逻辑结构有哪两种?
6、一般,将算法求解问题的输入量称为(
)。
二 线性表
选择题
1、以下关于线性表的说法不正确的是( )。
A、线性表中的数据元素可以是数字、字符、记录等不同类型。
B、线性表中包含的数据元素个数不是任意的。 C、线性表中的每个结点都有且只有一个直接前趋和直接后继。
D、存在这样的线性表:表中各结点都没有直接前趋和直接后继。
2、线性表的顺序存储结构是一种( )的存储结构。
A、随机存取 B、顺序存取 C、索引存取 D、散列存取
3、在顺序表中,只要知道(
),就可在相同时间内求出任一结点的存储地址。
A、基地址 B、结点大小 C、向量大小 D、基地址和结点大小
4、在等概率情况下,顺序表的插入操作要移动( )结点。
A、全部 B、一半 C、三分之一 D、四分之一
5、在( )运算中,使用顺序表比链表好。
A、插入 B、删除 C、根据序号查找 D、根据元素值查找
6、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是(
)。 A、 O(1) B、 O(n) C、 O(n^2) D、 O(log2n)
填空题
1、
线性表是一种典型的(
)结构。
2、
在一个长度为n的顺序表中删除第i个元素,要移动(
)个元素
3、如果要在第i个元素前插入一个元素,要后移(
)个元素。
4、采用(
)存储结构的线性表叫顺序表。
5、顺序表中逻辑上相邻的元素的物理位置( )。
6、在无头结点的单链表中,第1个结点的地址存放在头指针中,其他结点的存储地址存放在(
)结点的next域中。
三 栈和队列
选择
1、栈与一般的线性表的区别在于( )。 A、数据元素的类型不同 B、运算是否受限制 C、数据元素的个数不同 D、逻辑结构不同
2、一个栈的入栈序列是abcde,则栈的不可能的输出序列是( )。
A、Edcba B、 decba C、 dceab D、 abcde
3、在对栈的操作中,能改变栈的结构的是( )。
A、InitStack(S) B、StackEmpty(S) C、StackTop(S) D、StackFull(S)
4、顺序栈的类型定义如下: typedef maxsize 64; typedef struct { int data[maxsize]; int top;}seqstack; seqstack *s; 顺序栈s栈满条件是( )。 (A)s->top<>0 (B)s->top==maxsize (C)s->top==maxsize-1 (D)S->top!=maxsize
5、向一个栈顶指针为HS的链栈中将一个S指针所指的结点入栈,执行(
)。 A、HS->next=s; B、S->next=HS->next;HS->next=s; C、S->next=HS->next;HS=s; D、S->next=HS;HS=HS->next;
6、若已知一个栈的入栈序列是1,2,3,…,n,其输出序列是p1,p2,p3,…,pn,若p1=n,则pi=(
)。 A、I B、n-I C、n-i+1 D、不确定
填空
1、
在栈中,可进行插入和删除操作的一端称( )。
2、在栈的出栈操作中,要先判断栈是否空,否则会产生( )现象。
3、当程序中同时使用(
)个栈时,让它们共享同一向量空间可减少上溢的发生。
4、栈的特点是(
)。
5、由于链栈的操作只在链表头部进行,所以没有必要设置( )结点。
6、若内存空间充足,(
)栈可不定义栈满运算。
四 串
选择
1、
串是一种特殊的线性表,其特殊性体现在( )。
A、可以顺序存储 B、数据元素是一个字符 C、可以链接存储 D、数据元素可以是多个字符
2、有两个串P和Q,求P和Q中首此出现的位置的运算称( )。
A、连接 B、模式匹配 C、求子串 D、求串长
3、设串s1='ABCDEFG',s2='PQRST',函数con(x,y)返回x和y串的连接串,subs(s,I,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2)))的结果串是(
)。 A、BCDEF B、BCDEFG C、BCPQRST
D、BCDEFEF
4、在串的模式匹配中,一般( )。
A、有效位移的个数大于合法位移的个数 B、有效位移的个数等于合法位移的个数 C、有效位移的个数小于合法位移的个数 D、有效位移和合法位移无关
5、顺序串中,根据空间分配方式的不同,可分为( )。
A、直接分配和间接分配 B、静态分配和动态分配 C、顺序分配和链式分配 D、随机分配和固定分配
填空
1、
在空串和空格串中,长度不为0的是( )。
2、按存储结构不同,串可分为( )。
3、C语言中,以字符(
)表示串值的终结。
4、在链串中,为了提高存储密度,应该增大(
).
5、假设每个字符占1个字节,若结点大小为4的链串的存储密度为50%,则其每个指针占(
)个字节。