没有合适的资源?快使用搜索试试~ 我知道了~
首页清华大学计算机考研数据结构真题精选及答案
清华大学计算机考研数据结构真题精选及答案
3星 · 超过75%的资源 需积分: 50 28 下载量 7 浏览量
更新于2024-07-18
1
收藏 3.63MB PDF 举报
"清华计算机考研数据结构1800题.pdf" 是一份针对清华大学计算机考研的数据结构专项练习题集,包含1800道精选自60多所院校历年考研真题,并附带详细答案。内容涵盖数据结构的多个核心章节,如线性表、栈和队列、串、数组和广义表、树和二叉树、图、动态存储管理、集合、排序以及文件。 此资源旨在帮助考生深入理解和掌握数据结构的基础知识和进阶应用,提升解题能力。试题分为选择题等形式,涉及算法的基本概念,如算法的时间复杂度、效率、复杂性,以及算法设计的基本性质,如可执行性、确定性和有穷性。例如,题目讨论了算法的时间复杂度取决于问题的规模,强调了算法的执行效率与输入数据的关系。此外,还强调了算法应具备的特性,如可执行性、确定性和有穷性,这些都是算法设计的基本原则。 在数据结构的具体内容中,考生可以找到关于线性表的操作,如插入和删除;栈和队列的特性及其应用;串的操作,如模式匹配;数组和广义表的组织与操作;树和二叉树的遍历、查找和构造;图的遍历算法,如深度优先搜索和广度优先搜索;动态存储管理中的内存分配和回收策略;集合的运算;排序算法,如冒泡排序、快速排序等;以及文件的组织和管理。 通过这些习题和答案,考生可以检验自己对数据结构的理解程度,找出知识盲点,同时提升分析和解决问题的能力,为应对清华大学计算机考研做好充分准备。这份资料不仅适用于清华大学的考生,也对其他高校计算机专业的学生和对数据结构感兴趣的读者具有很高的参考价值。
资源详情
资源推荐
经管人考研机构考研专业课辅导系列 Jingguanren.COM 追求卓越 唯有业精于专
www.jingguanren.com.cn
16
24.在单链表指针为 p 的结点之后插入指针为 s 的结点,正确的操作是:( )。
A.p->next=s;s->next=p->next; B. s->next=p->next;p->next=s;
C.p->next=s;p->next=s->next; D. p->next=s->next;p->next=s;
【青岛大学 2001 五、3(2 分)】
25.对于一个头指针为 head 的带头结点的单链表,判定该表为空表的条件是( )
A.head==NULL B.head→next==NULL C.head→next==head D.head!=NULL
【北京工商大学 2001 一、5(3 分)】
26. 在双向链表存储结构中,删除 p 所指的结点时须修改指针( )。
A. (p^.llink)^.rlink:=p^.rlink (p^.rlink)^.llink:=p^.llink;
B. p^.llink:=(p^.llink)^.llink (p^.llink)^.rlink:=p;
C. (p^.rlink)^.llink:=p p^.rlink:=(p^.rlink)^.rlink
D. p^.rlink:=(p^.llink)^.llink p^.llink:=(p^.rlink)^.rlink;
【西安电子科技大学 1998 一、1(2 分)】
27. 双向链表中有两个指针域,llink 和 rlink 分别指向前趋及后继,设 p 指向链表中的一个结
点,现要求删去 p 所指结点,则正确的删除是( )(链中结点数大于 2,p 不是第一个结点)
A.p^.llink^.rlink:=p^.llink; p^.llink^.rlink:=p^.rlink; dispose(p);
B.dispose(p); p^.llink^.rlink:=p^.llink; p^.llink^,rlink:=p^.rlink;
C.p^.llink^.rlink:=p^.llink; dispose(p); p^.llink^.rlink:=p^.rlink;
D.以上 A,B,C 都不对。 【南京理工大学 1997 一、1(2 分)】
二、判断
1. 链表中的头结点仅起到标识的作用。( )【南京航空航天大学 1997 一、1(1 分)】
2. 顺序存储结构的主要缺点是不利于插入或删除操作。( )【南京航空航天大学 1997 一、2(1
分)】
3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( )
【北京邮电大学 1998 一、2(2 分)】
4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。( )
【北京邮电大学 2002 一、2(1 分)】
5. 对任何数据结构链式存储结构一定优于顺序存储结构。( )【南京航空航天大学 1997 一、3
(1 分)】
6.顺序存储方式只能用于存储线性结构。( )
【中科院软件所 1999 六、1-2(2 分)】【上海海运学院 1997 一、1(1 分)】
7.集合与线性表的区别在于是否按关键字排序。( )【大连海事大学 2001 一、5 ( 1 分)】
8. 所谓静态链表就是一直不发生变化的链表。( )【合肥工业大学 2000 二、1(1 分)】
9. 线性表的特点是每个元素都有一个前驱和一个后继。( )【合肥工业大学 2001 二、1(1
分)】
10. 取线性表的第 i 个元素的时间同 i 的大小有关. ( )【南京理工大学 1997 二、9(2 分)】
11. 循环链表不是线性表. ( )【南京理工大学 1998 二、1(2 分)】
12. 线性表只能用顺序存储结构实现。( )【青岛大学 2001 四、2(1 分)】
13. 线性表就是顺序存储的表。( )【青岛大学 2002 一、1(1 分)】
14.为了很方便的插入和删除数据,可以使用双向链表存放数据。( )
【上海海运学院 1995 一、1(1 分)】 【上海海运学院 1997 一、2(1 分)】
15. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( )
【上海海运学院 1996 一、1(1 分)】 【上海海运学院 1999 一、1(1 分)】
经管人考研机构考研专业课辅导系列 Jingguanren.COM 追求卓越 唯有业精于专
www.jingguanren.com.cn
17
16. 链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中
效率高。 ( ) 【上海海运学院 1998 一、2(1 分)】
三、填空
1.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性
表中的元素时,应采用_______存储结构。【北方交通大学 2001 二、4】
2.线性表 L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元
素平均需要移动元素的个数是________。【北方交通大学 2001 二、9】
3.设单链表的结点结构为(data,next),next 为指针域,已知指针 px 指向单链表中 data 为 x
的结点,指针 py 指向 data 为 y 的新结点 , 若将结点 y 插入结点 x 之后,则需要执行以下语
句:_______; ______;【华中理工大学 2000 一、4(2 分)】
4.在一个长度为 n 的顺序表中第 i 个元素(1<=i<=n)之前插入一个元素时,需向后移动________
个元素。
【北京工商大学 2001 二、4(4 分)】
5.在单链表中设置头结点的作用是________。【哈尔滨工业大学 2000 二、1(1 分)】
6.对于一个具有 n 个结点的单链表,在已知的结点*p 后插入一个新结点的时间复杂度为________,
在给定值为 x 的结点后插入一个新结点的时间复杂度为________。【哈尔滨工业大学 2001 一、1
(2 分)】
7.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成________和
_______;而又根据指针的连接方式,链表又可分成________和________。【西安电子科技大学
1998 二、4(3 分)】
8. 在双向循环链表中,向 p 所指的结点之后插入指针 f 所指的结点,其操作是_______、_______、
_______、________。【中国矿业大学 2000 一、1(3 分)】
9. 在双向链表结构中,若要求在 p 指针所指的结点之前插入指针为 s 所指的结点,则需执行下
列语句:
s^ .next:=p; s^ .prior:= ________;p^ .prior:=s;________:=s;
【福州大学 1998 二、7 (2 分)】
10.链接存储的特点是利用________来表示数据元素之间的逻辑关系。【中山大学 1998 一、1 (1
分)】
11.顺序存储结构是通过________表示元素之间的关系的;链式存储结构是通过________表示元
素之间的关系的。【北京理工大学 2001 七、2 (2 分)】
12. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共 ______个,单链表为
_______个。
【南京理工大学 2000 二、2 (3 分)】
13. 循环单链表的最大优点是:________。【福州大学 1998 二、3 (2 分)】
14. 已知指针 p 指向单链表 L 中的某结点,则删除其后继结点的语句是:________
【合肥工业大学 1999 三、2 (2 分)】
15. 带头结点的双循环链表 L 中只有一个元素结点的条件是:________
【合肥工业大学 1999 三、3 2000 三、2(2 分)】
16. 在单链表 L 中,指针 p 所指结点有后继结点的条件是:__
【合肥工业大学 2001 三、3 (2
分)】
17.带头结点的双循环链表 L 为空表的条件是:________。
【北京理工大学 2000 二、1 (2 分)】 【青岛大学 2002 三、1 (2 分)】
18. 在单链表 p 结点之后插入 s 结点的操作是:_______。【青岛大学 2002 三、2(2 分)】
经管人考研机构考研专业课辅导系列 Jingguanren.COM 追求卓越 唯有业精于专
www.jingguanren.com.cn
18
19. 请在下列算法的横线上填入适当的语句。【清华大学 1994 五 (15 分)】
FUNCTION inclusion(ha,hb:linklisttp):boolean;
{以 ha 和 hb 为头指针的单链表分别表示有序表 A 和 B,本算法判别表 A 是否包含在表 B 内,
若是,则返回“true”,否则返回“false”}
BEGIN
pa:=ha^.next; pb:=hb^.next; (1)
;
WHILE(2)
DO
IF pa^.data=pb^.data THEN(3)
ELSE(4) ;
(5)
END;
20.完善算法:已知单链表结点类型为:
TYPE ptr=^node;
node=RECORD
data:integer; next:ptr
END;
过程 create 建立以 head 为头指针的单链表。
PROCEDURE create ( (1)
);
VAR p,q:ptr; k:integer;
BEGIN
new(head); q:=head;read(k);
WHILE k>0 DO
BEGIN
(2)
; (3); (4); (5);
read(k)
END;
q^.next:=NIL;
END;【北京师范大学 1999 三】
21. 已给如下关于单链表的类型说明:
TYPE
list=^node ;
node=RECORD
data: integer; next: list;
END;
以下程序采用链表合并的方法,将两个已排序的单链表合并成一个链表而不改变其排序性(升
序),这里两链表的头指针分别为 p 和 q.
PROCEDURE mergelink(VAR p,q:list):
VAR h,r: list;
BEGIN
(1)______
h^.next:= NIL; r:=h;
WHILE((p<>NIL) AND (q<>NIL)) DO
IF (p^.data<=q^.data)
THEN BEGIN (2)___
; r:=p; p:=p^.next; END
ELSE BEGIN (3)____
; r:=q; q:=q^.next; END;
经管人考研机构考研专业课辅导系列 Jingguanren.COM 追求卓越 唯有业精于专
www.jingguanren.com.cn
19
IF (p=NIL) THEN r^.next:=q;
(4)__
;
p:=h^.next; dispose(h);
END;【厦门大学 2000 三、2 (8 分)】
22.假设链表 p 和链表 q 中的结点值都是整数,且按结点值的递增次序链接起来的带表头结点的
环形链表。各链表的表头结点的值为 max,且链表中其他结点的值都小于 max,在程序中取 max
为 9999。在各个链表中,每个结点的值各不相同,但链表 p 和链表 q 可能有值相同的结点(表
头结点除外)。下面的程序将链表 q 合并到链表 p 中,使得合并后的链表是按结点值递增次序链
接起来的带表头结点的环形链表,且链表中各个结点的值各不相同。请在划线处填上适当内容,
每个框只填一个语句或一个表达式,链表的结点类型如下
TYPE nodeptr=^nodetype;
nodetype=RECORD
data:integer; link:nodeptr;
END;
CONST max=9999;
PROCEDURE merge(VAR p:nodeptr;q:nodeptr);
VAR r,s: nodeptr;
BEGIN
r:=p;
WHILE (A)___
DO
BEGIN
WHILE r^.link^.data<q^.link^.data DO (B)___
;
IF r^.link^.data>q^.link^.data
THEN BEGIN s:=(C)_;
(D)_:=s^.link; s^.link:=(E)_; (F)_ _:=s; (G)_;
END
ELSE BEGIN (H)_
_; s:=q^.link; (I)__; dispose(s) END
END;
dispose(q)
END;【复旦大学 1997 五(18 分)】
23.PROC ins__linklist(la:linkisttp; i:integer; b:elemtp);
{la 为指向带头结点的单链表的头指针,本算法在表中第 i 个元素之前插入元素 b}
p:=(1)
; j:=(2) ;{指针初始化,j 为计数器}
WHILE (p<>NIL) AND ((3)
) DO [p:=(4) ; j:=j+1;]
{寻找第 i-1 个结点}
IF (p=NIL) OR ((5) )
THEN error (‘No this position’)
ELSE [new(s) ; s↑.data:=b; s↑.next:=p↑.next; p↑.next:=s;]
ENDP;{ins-linklist}【燕山大学 1998 四、1(15 分)】
24. 已知双链表中结点的类型定义为:
TYPE dpointer=^list;
list=RECORD
data:integer; left,right:dpointer;
END;
如下过程将在双链表第 i 个结点(i>=0)之后插入一个元素为 x 的结点,请在答案栏给出题目中
经管人考研机构考研专业课辅导系列 Jingguanren.COM 追求卓越 唯有业精于专
www.jingguanren.com.cn
20
______处应填入的语句或表达式,使之可以实现上述功能。
PROCEDURE insert(VAR head:dpointer;i,x:integer);
VAR s,p:dpointer; j: integer;
BEGIN
new(s); s^.data:=x;
IF(i=0)THEN BEGIN s^.right:=head; (1)___
head:=s END{如果 i=0,则将 s 结点插入到
表头后返回}
ELSE BEGIN p:=head; (2)______
_;{在双链表中查找第 i 个结点,由 p 所指向}
WHILE ((p<>NIL) AND (j<i)) DO BEGIN j:=j+1; (3) _
END;
IF p<>NIL THEN
IF (p^.right=NIL)
THEN BEGIN p^.right:=s; s^.right:=NIL; (4) __
END
ELSE BEGIN s^.right:=p^.right; (5)
_;p^.right:=s; (6) END
ELSE writeln(‘can not find node!’)
END
END;【厦门大学 2002 二 (12 分)】
25.阅读以下算法,填充空格,使其成为完整的算法。其功能是在一个非递减的顺序存储线性表
中,删除所有值相等的多余元素。
CONST maxlen=30
TYPE sqlisttp=RECORD
elem:ARRAY[1..maxlen] OF integer;
last:0..maxlen
END;
PROC exam21(VAR L:sqlisttp);
j:=1; i:=2;
WHILE (1)______
DO
[ IF L.elem[i]<>L.elem[j] THEN [ (2)___
____; (3)______];
i:=i+1 ]
(4) ______
__;
ENDP;【同济大学 2000 二、1 (10 分)】
26.在本题的程序中,函数过程 Create_link_list(n)建立一个具有 n 个结点的环形链表;程序
过程 josephus(n,i,m)对由 Create_link_list(n)所建立的具有 n 个结点的环形链表按一定的次
序逐个输出并删除链表中的所有结点,参数 n(n>0)指明环形链表的结点个数,参数 i(1<=i<=n)
指明起始结点,参数 m (m>0)是步长,指明从起始结点或前次被删除并输出的结点之后的第 m
个结点作为本次被输出并删除的结点。例如,对于下图中具有 6 个结点的环形链表,在调用
josephus(6,3,2)后,将输出 5,1,3,6,4,2 请在横线处填上适当内容,每空只填一个语句。
剩余155页未读,继续阅读
研发攻城狮
- 粉丝: 46
- 资源: 82
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功