没有合适的资源?快使用搜索试试~ 我知道了~
首页数据结构1800试题.pdf
数据结构1800试题.pdf
需积分: 5 88 下载量 123 浏览量
更新于2023-09-12
31
收藏 1.4MB PDF 举报
你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/85267503/bg10.jpg)
《数据结构 1800 题》
郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org
16
BEGIN
FOR i:=1 TO m-1 DO p:=p^.link;
(E)_
__; write(q^.data:8); (F)__ ;
dispose(q); j:=j+1
END
END;【复旦大学 1997 四(12 分)】
27.对于给定的线性链表 head , 下面的程序过程实现了按结点值非降次序输出链表中的所有结点,在每
次输出一个结点时,就把刚输出的结点从链表中删去。请在划线处填上适当的内容,使之成为一个完整的
程序过程,每个空框只填一个语句。
TYPE nodeptr =^ nodetype;
nodetype = RECORD
data : integer;link : nodeptr
END;
VAR head : nodeptr;
PROCEDURE sort_output_delete (head : nodeptr);
VAR p,q,r,s: nodeptr;
BEGIN WHILE head <> NIL DO
BEGIN p:= NIL ;q:= head;r:= q ;s:=q^.link ;
WHILE s <> NIL DO
BEGIN IF s^.data < q^.data THEN BEGIN (1)__
; (2)___ END ;
r:= s ; (3)___
END;
write(q^.data : 5) ;
IF p=NIL THEN (4)_
__ ELSE (5)____ ;
dispose (q) ;
END;
writeln
END;【复旦大学 1996 七(20 分) 1995 一(12 分)与本题相似】
28.下面函数的功能是在一个按访问频度不增有序的,带头结点的双向链环上检索关键值为 x 的结点,对
该结点访问频度计数,并维护该链环有序。若未找到,则插入该结点。所有结点的频度域初值在建表时都
为零。请将程序中四处空缺补写完整。
TYPE
link=^node
node=RECORD
key:char; freq:integer; pre,next:link;
END;
VAR l:link;
FUNCTION loc(l:link;x:char):link;
VAR p,q:link;
BEGIN
p:=l^.next; (1)_
;
WHILE p^.key<>x DO p:=p^.next;
IF p=l THEN [ new(q); q^.key:=x; q^.freq:=0 ]
ELSE {找到}
![](https://csdnimg.cn/release/download_crawler_static/85267503/bg11.jpg)
《数据结构 1800 题》
郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org
17
[ p^.freq:=p^.freq+1; q:=p; (2)______;
WHILE q^.freq>p^.pre^.freq DO p:=p^.pre;
IF p<>q THEN [ (3)______
]
];
IF (4)_
THEN [q^.next:=p, q^.pre;=p^.pre; p^.pre^.next:=q; p^.pre:=q]
return(q);
END;【北京工业大学 1999 五 (12 分)】
29.循环链表 a 和 b 的结点值为字母,其中 a 表非递减有序,下面的程序欲构造一个递增有序的循环链表
c,其中结点的值为同时在 a,b 两链表中出现的字母,且 c 中字母不重复,请补上程序中空缺的部分,并
估计算法的时间复杂度。(设 a,b 的结点数分别为 m,n)
TYPE
link=^node;
node=RECORD
key:char; next:link
END;
PROC jj(a,b:link; VAR c:link);
VAR p,q,r,s:link;
BEGIN
new(c);c^.next:=c; q:=a; p:=a^.next;
WHILE p<>a DO
[(1)___
;
WHILE p^.key=p^.next^.key DO [q:=p; p=p^.next];{跳过相同字母}
r:=b^.next ; (2)__
___;
WHILE r^.key <>p^.key DO r:=r^.next;
IF r<>b THEN
[ s:=p; q^.next:=p^.next; (3)
;
s^.next:=c^.next; c^.next:=s; c:=s ]
ELSE [ q:=p; p:=p^.next ]
]; c:=c^.next;
END;
算法时间复杂度为 O(4)___
【北京工业大学 2000 四 (15 分)】
30. 以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。
void reverse(pointer h)
/* h 为附加头结点指针;类型 pointer 同算法设计第 3 题*/
{ pointer p,q;
p=h->next; h->next=NULL;
while((1)____
____)
{q=p; p=p->next; q->next=h->next; h->next=(2)__
______; }
}【西南交通大学 2000 一、9】
31. 下面是用 c 语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用 L 返回逆置后的链表的
头指针,试在空缺处填入适当的语句。
void reverse(linklist &L){
p=null;q=L;
while(q!=null)
![](https://csdnimg.cn/release/download_crawler_static/85267503/bg12.jpg)
《数据结构 1800 题》
郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org
18
{ (1) ; q->next=p;p=q;(2)___ ; }
(3)_____;
}【北京理工大学 2001 九、1 (6 分)】
32.下面程序段是逆转单向循环链表的方法,p
0
是原链表头指针,逆转后链表头指针仍为 p
0
。
(可以根据需要增加标识符)
p:= p
0
; q
0
:=NIL;
WHILE (1)_
_______ DO
BEGIN (2)_____
___; (3)________;(4)______;(5)________ END;
p^.next:= q
0
; p
0
^.next:=p; p
0
:=p;【中国人民大学 2000 二、1(4 分)】
33.一个无头结点的线性链表(不循环)有两个域。数据域 data,指针域 next,链首 head,下面算法用
read(num)读入数据,当 num 小于 0 时,输入结束。建立一个数据以递增序组成的链表。
PROC insert( head, x);
{在链首为 head 的表中按递增序插入 x}
new(r);r^.data:=x;
IF head=NIL
THEN[ head:=(1) _
____; r^.next:= (2)________ ]
ELSE IF (3)__
_ THEN [r^ .next:=head; head:=r]
ELSE [p:=head;
WHILE (4)__
_ AND (p^.next≠NIL ) DO[q:=p; (5)___ ];
IF (6)__
_ THEN [ q^ .next:=(7)___; r^.next:= (8)____; ]
ELSE [p^.next:=(9)
____; r^.next:= (10)___; ]
]
ENDP;
PROC creat(head);
head:= (11)_____
_; read(num);
WHILE num>0 DO
[ insert(head,num); read(num) ]
ENDP;【南京理工大学 1999 三、4(11 分)】
34. 一元稀疏多项式以循环单链表按降幂排列,结点有三个域,系数域 coef ,指数域 exp 和指针域 next;
现对链表求一阶导数 ,链表的头指针为 ha,头结点的 exp 域为 –1。
derivative(ha)
{ q=ha ; pa=ha->next;
while( (1)___
____)
{ if ( (2)___
_) { ( (3)__); free(pa); pa= ( (4) _); }
else{ pa->coef ( (5) ___
); pa->exp( (6)___); q=( (7) __);}
pa=( (8)____
____);
}
} 【南京理工大学 2000 三、3(10 分)】
35.下面是删除单链表 L 中最大元素所在结点的类 PASCAL 语言算法,请在横线填上内容,完成其功能。
TYPE pointer =↑node;
node=RECORD
data:integer; next: pointer
END;
PROCEDURE delmax (L:pointer);
![](https://csdnimg.cn/release/download_crawler_static/85267503/bg13.jpg)
《数据结构 1800 题》
郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org
19
VAR p,q,r:pointer; m:integer;
BEGIN
r:=L; p:=L↑.next;
IF p<>NIL THEN
[ m:=p↑.data; (1)_____
___; p:=p↑.next;
WHILE p<>NIL DO
[ IF (2)_____
___THEN [ (3)________ ; m:=p↑.data; ]
(4)_______
_; p:=p↑.next;
]
q:=r↑.next; (5)______
; dispose(q);
]
END;【北京科技大学 1998 二】
36.对单链表中元素按插入方法排序的 C 语言描述算法如下,其中 L 为链表头结点指针。请填充算法中标
出的空白处,完成其功能。
typedef struct node
{int data; struct node *next;
}linknode,*link;
void Insertsort(link L)
{ link p,q,r,u;
p=L->next; (1)______
;
while((2)___
_____)
{ r=L; q=L->next;
while((3)___
_____&& q->data<=p->data) {r=q; q=q->next;}
u=p->next; (4)______
; (5)______; p=u;
}
}【北京科技大学 2001 二 (10 分)】
37.下面是一个求两个集合 A 和 B 之差 C=A-B 的程序,即当且仅当 e 是 A 的一个元素,但不是 B 中的一个
元素时,e 才是 C 中的一个元素。集合用有序链表实现,初始时,A,B 集合中的元素按递增排列,C 为空;
操作完成后 A,B 保持不变,C 中元素按递增排列。下面的函数 append(last,e)是把值为 e 的新结点链接
在由指针 last 指向的结点的后面,并返回新结点的地址;函数 difference(A,B)实现集合运算 A-B,并返
回表示结果集合 C 的链表的首结点的地址。在执行 A-B 运算之前,用于表示结果集合的链表首先增加一个
附加的表头结点,以便新结点的添加,当 A-B 运算执行完毕,再删除并释放表示结果集合的链表的表头结
点。
程序(a)(编者略去这个 PASCAL 程序)
程序(b)
typedef struct node{ int element; struct node *link;
}NODE;
NODE *A,*B,*C;
NODE *append (NODE *last,int e)
{ last->link=(NODE*) malloc (sizeof(NODE));
last->link->element=e;
return(last->link);
}
NODE *difference(NODE *A,NODE *B)
![](https://csdnimg.cn/release/download_crawler_static/85267503/bg14.jpg)
《数据结构 1800 题》
郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org
20
{NODE *C,*last;
C=last=(NODE*) malloc (sizeof(NODE));
while (1)___
if (A->element<B->element) { last=append(last,A->element); A=A->link; }
else if (2) ___
{ A=A->link; B=B->link; } ELSE (3) ___ ;
while (4) __
{ last=append(last,A->element); A=A->link; }
(5) ___
; last=C; C=C->link; free (last); return (C);
}
/*call form:C=difference(A,B);*/【上海大学 2000 一、4 (10 分)】
四 应用题
1.线性表有两种存储结构:一是顺序表,二是链表。试问:
(1)如果有 n 个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自
动地改变。在此情况下,应选用哪种存储结构? 为什么?
(2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,
那么应采用哪种存储结构?为什么?【西安电子科技大学 1999 软件 二、1 (5 分)】
2.线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;其二,由于
难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其三,表的容量难以扩充。线
性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。【重庆大学 2000 二、5】
3.若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?为什么?
【北京航空航天大学 1998 一、2(4 分)】
4.线性结构包括______、______、_______和_______。线性表的存储结构分成______和______。请用类
PASCAL 语言描述这两种结构。【华北计算机系统工程研究所 1999 一、2(10 分)】
5.线性表(a
1
,a
2
,…,a
n
)用顺序映射表示时,a
i
和a
i+1
(1<=i<n〉的物理位置相邻吗?链接表示时呢?
【东南大学 1996 一、1 (5 分)】
6. 说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;头结点与首元结点的关系。
【厦门大学 2000 五、1 (14%/3 分)】
7. 试述头结点,首元结点,头指针这三个概念的区别.
【武汉交通科技大学 1996 二、2 (3 分)】【西安电子科技大学 2001 计应用 二、1(5 分)】
8. 已知有如下定义的静态链表:
TYPE component=RECORD
data:elemtp;
next:0..maxsize
END
VAR stalist:ARRAY[0..maxsize] OF component;
以及三个指针:av 指向头结点,p 指向当前结点,pre 指向前驱结点,现要求修改静态链表中 next 域中的
内容,使得该静态链表有双向链表的功能,从当前结点 p 既能往后查找,也能往前查找:
(1) 定义 next 域中的内容。(用老的 next 域中的值表示);
(2) 如何得到当前结点 p 的前驱(pre)的前驱,给出计算式;
(3) 如何得到 p 的后继,给出计算式;【中科院计算所 2000 四(10 分)】
9. 在单链表和双向链表中,能否从当前结点出发访问到任何一个结点?
【西安电子科技大学 1999 计应用一、1 (5 分)】
10. 如何通过改链的方法,把一个单向链表变成一个与原来链接方向相反的单向链表?
剩余176页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/5e2dcf37e49f49478b4ab0d5782652f7_weixin_64215932.jpg!1)
王者与CV
- 粉丝: 258
- 资源: 12
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- GO婚礼设计创业计划:技术驱动的婚庆服务
- 微信行业发展现状及未来发展趋势分析
- 信息技术在教育中的融合与应用策略
- 微信小程序设计规范:友好、清晰的用户体验指南
- 联鼎医疗:三级甲等医院全面容灾备份方案设计
- 构建数据指标体系:电商、社区、金融APP案例分析
- 信息技术:六年级学生制作多媒体配乐古诗教程
- 六年级学生PowerPoint音乐动画实战:制作配乐古诗演示
- 信息技术教学设计:特点与策略
- Word中制作课程表:信息技术教学设计
- Word教学:制作课程表,掌握表格基础知识
- 信息技术教研活动年度总结与成果
- 香格里拉旅游网设计解读:机遇与挑战并存
- 助理电子商务师模拟试题:设计与技术详解
- 计算机网络技术专业教学资源库建设与深圳IT产业结合
- 微信小程序开发:网络与媒体API详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)