山东师范大学数据结构考研真题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章绪论
一、选择题
1. 算法的时间复杂度取决于( C )
A.问题的规模 B. 待处理数据的初态 C. A和B
2.计算机算法指的是(C),它必须具备(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法
(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性
C. 确定性、有穷性、稳定性
D. 易读性、稳定性、安全性
3.从逻辑上可以把数据结构分为( C )两大类。
A.动态结构、静态结构 B.顺序结构、链式结构
C.线性结构、非线性结构 D.初等结构、构造型结构
4.以下与数据的存储结构无关的术语是( D )。
A.循环队列 B. 链表 C. 哈希表 D. 栈
5.在下面的程序段中,对x的赋值语句的频度为( C )
FOR i:=1 TO n DO
FOR j:=1 TO n DO
x:=x+1;
A. O(2n) B.O(n) C.O(n2) D.O(log2n)
6.连续存储设计时,存储单元的地址( A )。
A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续
二、判断题
1. 数据元素是数据的最小单位。( F ) (数据项)
2. 记录是数据处理的最小单位。 ( F )(数据项)
3.数据的物理结构是指数据在计算机内的实际存储形式。( T )【山东师范大学2001 一、2(2分)】
4. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。( F )
5. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( F )
三、填空
1.数据的物理结构包括的表示和的表示。(数据元素)(关系)
2. 对于给定的n个元素,可以构造出的逻辑结构有(1),(2),(3),_(4)四种。
(数组,栈,线性表,队列)
3.数据的逻辑结构是指。
4.一个数据结构在计算机中称为存储结构。
5.数据结构中评价算法的两个重要指标是
6.已知如下程序段
FOR i:= n DOWNTO 1 DO {语句1}
BEGIN
x:=x+1;{语句2}
FOR j:=n DOWNTO i DO {语句3}
y:=y+1; {语句4}
END;
语句1执行的频度为(1);语句2执行的频度为(2);语句3执行的频度为(3);语句4执行的频度为(4)。
答案:1.数据元素数据元素间关系 2.集合线性结构树形结构图状结构或网状结构。3.数据的组织形式,即数据元素之间逻辑关系的总体。而逻辑关系是指数据元素之间的关联方式或称“邻接关系”。4.表示(映像)。5.时间复杂度和空间复杂度。
6.(1)n+1 (2)n (3)n(n+3)/2 (4)n(n+1)/2。
四、应用题
1. 数据元素之间的关系在计算机中有几种表示方法?各有什么特点?
四种表示方法
(1)顺序存储方式。数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据元素间的逻辑关系。存储密度大,但有些操作(如插入、删除)效率较差。
(2)链式存储方式。每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。指针反映数据元素间的逻辑关系。这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。
(3)索引存储方式。除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置,兼有静态和动态特性。
(4)散列存储方式。通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。2.若有100个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最方便,写出这些结构?【山东师范大学 1996 二、2】
将学号、姓名、平均成绩看成一个记录(元素,含三个数据项),将100个这样的记录存于数组中。因一般无增删操作,故宜采用顺序存储。
typedef struct
{int num;//学号
char name[8];//姓名
float score;/平均成绩
}node;
node student[100];
第2章线性表
一选择题
1.线性表是具有n个(数据元素)的有限序列(n>0)。
2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(顺序表)存储方式最节省时间。
3.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(仅有尾指针的单循环链表)存储方式最节省运算时间。
4.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( D )最节省时间。
A. 单链表
B.单循环链表
C. 带尾指针的单循环链表
D.带头结点的双循环链表
5.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用( D )存储方式最节省运算时间。
A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表
6. 链表不具有的特点是( B )
A.插入、删除不需要移动元素 B.可随机访问任一元素
C.不必事先估计存储空间 D.所需空间与线性长度成正比
7. 下面的叙述不正确的是( BC )
A.线性表在链式存储时,查找第i个元素的时间同i的值成正比
B. 线性表在链式存储时,查找第i个元素的时间同i的值无关
C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比
D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关
8. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( C )(1<=i<=n+1)。
A. O(0)
B. O(1)
C. O(n)
D. O(n2)
9. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为( C )。
A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1) 10.线性表( a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为( C )A.O(i) B.O(1) C.O(n) D.O(i-1)
11.非空的循环单链表head的尾结点p↑满足( A )。
A.p↑.link=head B.p↑.link=NIL C.p=NIL D.p= head 12.完成在双循环链表结点p之后插入s的操作是( D );
A. p^.next:=s ; s^.priou:=p; p^.next^.priou:=s ; s^.next:=p^.next;
B. p^.next^.priou:=s; p^.next:=s; s^.priou:=p; s^.next:=p^.next;
C. s^.priou:=p; s^.next:=p^.next; p^.next:=s; p^.next^.priou:=s ;
D. s^.priou:=p; s^.next:=p^.next; p^.next^.priou:=s ; p^.next:=s;
14.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是(B )A.head==NULL B.head→next==NULL C.head→next==head D.head!=NULL
二、判断
2. 顺序存储结构的主要缺点是不利于插入或删除操作。( T )
3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( T )
4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。( F )
5. 对任何数据结构链式存储结构一定优于顺序存储结构。( F )
6.顺序存储方式只能用于存储线性结构。( F )
7.集合与线性表的区别在于是否按关键字排序。( F )
9. 线性表的特点是每个元素都有一个前驱和一个后继。( F )
10. 取线性表的第i个元素的时间同i的大小有关. ( F )
11. 循环链表不是线性表. ( F )
12. 线性表只能用顺序存储结构实现。( F )
13. 线性表就是顺序存储的表。( F )
14.为了很方便的插入和删除数据,可以使用双向链表存放数据。( T )
三、填空
1.线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是((n-1)/2)。
2.设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data 为x的结点,指针py指向data为y的新结点 , 若将结点y插入结点x之后,则需要执行以下语句: (py->next=px->next; px->next=py);
3.在单链表中设置头结点的作用是(主要是使插入和删除等操作统一,在第一个元素之前插入元素和删除第一个结点不必另作判断)。