收藏 分享(赏)

计算机考研必备参考资料-数据结构1800题_pdf.pdf

上传人:HR专家 文档编号:6274694 上传时间:2019-04-03 格式:PDF 页数:177 大小:1.40MB
下载 相关 举报
计算机考研必备参考资料-数据结构1800题_pdf.pdf_第1页
第1页 / 共177页
计算机考研必备参考资料-数据结构1800题_pdf.pdf_第2页
第2页 / 共177页
计算机考研必备参考资料-数据结构1800题_pdf.pdf_第3页
第3页 / 共177页
计算机考研必备参考资料-数据结构1800题_pdf.pdf_第4页
第4页 / 共177页
计算机考研必备参考资料-数据结构1800题_pdf.pdf_第5页
第5页 / 共177页
点击查看更多>>
资源描述

1、数据结构 1800 题 郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org 1第一章 绪论 一、选择题 1. 算法的计算量的大小称为计算的( ) 。 【北京邮电大学2000 二、3 (20/8 分) 】 A效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于( ) 【中科院计算所 1998 二、1 (2 分) 】 A问题的规模 B. 待处理数据的初态 C. A 和B 3.计算机算法指的是(1) ,它必须具备(2) 这三个特性。 (1) A计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A可执行性、可

2、移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2 分) 【武汉交通科技大学 1996 一、1( 4 分) 】 4一个算法应该是( ) 。 【中山大学 1998 二、1(2 分) 】 A程序 B问题求解步骤的描述 C要满足五个基本特性 DA 和C. 5. 下面关于算法说法错误的是( ) 【南京理工大学 2000 一、1(1.5 分) 】 A算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面

3、说法错误的是( ) 【南京理工大学 2000 一、2 (1.5 分) 】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模 n 下,复杂度 O(n)的算法在时间上总是优于复杂度 O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A(1) B.(1),(2) C.(1),(4) D.(3) 7从逻辑上可以把数据结构分为( )两大类。 【武汉交通科技大学 1996 一 、4(2 分) 】 A动态结构、静态结构 B顺序结构、链式结构 C线性结构、非线性结构 D初等结构、构造型结构 8以下与数

4、据的存储结构无关的术语是( ) 。 【北方交通大学 2000 二、1(2 分) 】 A循环队列 B. 链表 C. 哈希表 D. 栈 9以下数据结构中,哪一个是线性结构( )?【北方交通大学 2001 一、1(2 分) 】 A广义表 B. 二叉树 C. 稀疏矩阵 D. 串 10以下那一个术语与数据的存储结构无关?( ) 【北方交通大学 2001 一、2(2 分) 】 A栈 B. 哈希表 C. 线索树 D. 双向链表 11在下面的程序段中,对 x 的赋值语句的频度为( ) 【北京工商大学 2001 一、10(3 分) 】 FOR i:=1 TO n DO FOR j:=1 TO n DO x:=x

5、+1; A O(2n) BO(n) CO(n2) DO(log 2n) 12程序段 FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO IF AjAj+1 THEN Aj与Aj+1对换; 其中 n 为正整数,则最后一行的语句频度在最坏情况下是( ) 数据结构 1800 题 郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org 2A. O(n) B. O(nlogn) C. O(n3) D. O(n2) 【南京理工大学1998 一、1(2 分)】 13以下哪个数据结构不是多型数据类型( ) 【中山大学 1999 一、3(1

6、分) 】 A栈 B广义表 C有向图 D字符串 14以下数据结构中, ( )是非线性数据结构【中山大学 1999 一、4】 A树 B字符串 C队 D栈 15. 下列数据中, ( )是非线性数据结构。 【北京理工大学 2001 六、1(2 分) 】 A栈 B. 队列 C. 完全二叉树 D. 堆 16连续存储设计时,存储单元的地址( ) 。 【中山大学 1999 一、1(1 分) 】 A一定连续 B一定不连续 C不一定连续 D部分连续,部分不连续 17以下属于逻辑结构的是( ) 。 【西安电子科技大学应用 2001 一、1】 A顺序表 B. 哈希表 C.有序表 D. 单链表 二、判断题 1. 数据元

7、素是数据的最小单位。( ) 【北京邮电大学 1998 一、1(2 分) 】 【青岛大学 2000 一、1 (1 分) 】 【上海交通大学 1998 一、1】 【山东师范大学 2001 一、1 (2 分) 】 2. 记录是数据处理的最小单位。 ( ) 【上海海运学院 1998 一、5(1 分) 】 3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;( )【北京邮电大学 2002 一、1(1 分) 】 4算法的优劣与算法描述语言无关,但与所用计算机有关。( )【大连海事大学 2001 一、10(1 分) 】 5 健壮的算法不会因非法的输入数据而出现莫名其妙的状态。 ( )【大连海事大学 200

8、1 一、 11(1 分) 】 6算法可以用不同的语言描述,如果用 C 语言或 PASCAL 语言等高级语言来描述,则算法实际上就是程序了。( )【西安交通大学 1996 二、7(3 分)】 7程序一定是算法。( )【燕山大学 1998 二、2(2 分)并改错】 8数据的物理结构是指数据在计算机内的实际存储形式。( )【山东师范大学 2001 一、2(2 分) 】 9. 数据结构的抽象操作的定义与具体实现有关。( )【华南理工大学 2002 一、1(1 分) 】 10. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。 ( )【华南理工大学 2002 一、2 (1 分) 】 11. 顺序存

9、储方式的优点是存储密度大,且插入、删除运算效率高。( )【上海海运学院 1999 一、1(1 分) 】 12. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。 ( ) 【华南理工大学 2002 一、5(1 分) 】 13. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. ( ) 【上海海运学院 1998 一、1(1 分) 】 三、填空 1数据的物理结构包括 的表示和 的表示。 【燕山大学 1998 一、1(2 分) 】 2. 对于给定的 n 个元素,可以构造出的逻辑结构有 (1) , (2) , (3) ,_(4)_ 四种。 【中科院计算所 19

10、99 二、1(4 分) 】 3数据的逻辑结构是指 。 【北京邮电大学 2001 二、1(2 分) 】 4一个数据结构在计算机中 称为存储结构。 【华中理工大学 2000 一、1(1 分) 】 5抽象数据类型的定义仅取决于它的一组_(1)_ ,而与_(2) _无关,即不论其内部结构如何变化,只要它的_(3)_ 不变,都不影响其外部使用。 【山东大学 2001 三、3(2 分) 】 6数据结构中评价算法的两个重要指标是 【北京理工大学 2001 七、1(2 分) 】 7. 数据结构是研讨数据的_(1) _和_(2)_ ,以及它们之间的相互关系,并对与这种结构定义相应的_(3)_,设计出相应的(4)

11、_ 。 【西安电子科技大学 1998 二、2(3 分) 】 8 一个算法具有 5 个特性: (1) 、 (2) 、 (3) ,有零个或多个输入、有一个或多个输出。 数据结构 1800 题 郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org 3【华中理工大学 2000 一、2(5 分) 】 【燕山大学 1998 一、2(5 分) 】 9已知如下程序段 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 执行的频度为

12、 (1) ;语句2 执行的频度为 (2) ;语句 3 执行的频度为 (3) ;语句 4 执行的频度为 (4) 。 【北方交通大学 1999 二、4(5 分) 】 10在下面的程序段中,对的赋值语句的频度为_(表示为 n 的函数) FOR i: TO n DO FOR j: TO i DO FOR k:1 TO j DO :delta; 【北京工业大学 1999 一、6(2 分) 】 11.下面程序段中带下划线的语句的执行次数的数量级是: 【合肥工业大学 1999 三、1(2 分) 】 i:=1; WHILE i1 DO i:=i div 2 ; 14. 计算机执行下面的语句时,语句 s 的执行

13、次数为 _ 。 【南京理工大学 2000 二、1(1.5 分) 】 FOR(i=l;i=i;j-) s; 15. 下面程序段的时间复杂度为 _。(n1) sum=1; for (i=0;sumq DO p:=p.next; p.next:=s; END;(of B) BEGIN B(h,g); B(g,h); END;(of A) 【东南大学 1999 二(10 分) 】 23. 调用下列C 函数f(n)或PASACAL 函数f(n) 回答下列问题 : (1) 试指出 f(n)值的大小,并写出 f(n) 值的推导过程; (2) 假定 n= 5,试指出 f(5)值的大小和执行 f(5)时的输出结

14、果 。 C 函数: int f(int n) int i,j,k,sum= 0; for(i=l; ii-1; j-) for(k=1;k0) 。 【清华大学 1998 一、4(2 分) 】 A表元素 B字符 C数据元素 D数据项 E信息项 4若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。 【哈尔滨工业大学 2001 二、1(2 分) 】 A顺序表 B双链表 C带头结点的双循环链表 D单循环链表 5某线性表中最常用的操作是在最 后一个元素之后插入一个元素 和删除第一个元素,则采用( )存储方式最节省运算时间。 【南开大学 2000 一

15、、3】 A单链表 B仅有头指针的单循环链表 C双链表 D仅有尾指针的单循环链表 6设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。 A. 单链表 B.单循环链表 C. 带尾指针的单循环链表 D.带头结点的双循环链表 【合肥工业大学 2000 一、1(2 分) 】 7若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用( )存储方式最节省运算时间。 【北京理工大学 2000 一、1(2 分) 】 A单链表 B双链表 C单循环链表 D带头结点的双循环链表 8. 静态链表中指针表示的是( ). 【北京理工大学 2001 六、2(2 分) 】 A 内

16、存地址 B数组下标 C下一元素地址 D左、右孩子地址 9. 链表不具有的特点是( ) 【福州大学 1998 一、8 (2 分)】 A插入、删除不需要移动元素 B可随机访问任一元素 C不必事先估计存储空间 D所需空间与线性长度成正比 10. 下面的叙述不正确的是( ) 【南京理工大学 1996 一、10(2 分) 】 A线性表在链式存储时,查找第 i 个元素的时间同 i 的值成正比 B. 线性表在链式存储时,查找第 i 个元素的时间同 i 的值无关 C. 线性表在顺序存储时,查找第 i 个元素的时间同 i 的值成正比 D. 线性表在顺序存储时,查找第 i 个元素的时间同 i 的值无关 11. 线

17、性表的表元存储方式有( (1) )和链接两种。 试指出下列各表中使用的是何种存储方式: 表1是( (2) )存储方式;表 2 是((3))存储方式;表 3 是((4) )存储方式;表 4 是((5) )存储方式。表左的 s 指向起始表元。 表1 s 表元编号 货号 数量 表元间联系1 618 40 2 2 205 2 3 3 103 15 4 4 501 20 5 5 781 17 6 6 910 24 0 数据结构 1800 题 郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org 9表2 s 表3 s 表4 s 供选择的答案: A.连续 B.单向

18、链接 C.双向链接 D.不连接 E.循环链接 F.树状 G.网状 H.随机 I.顺序 J.顺序循环 【上海海运学院 1995 二、1(5 分) 】 12.(1) 静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第 i 个元素的时间与 i无关。 (2) 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。 (3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。 以上错误的是( ) 【南京理工大学 2000 一、3(1.5 分) 】 A (1) , (2) B (1) C (1) , (2),(3) D.(2) 13. 若长度为 n 的线性表采用顺序

19、存储结构,在其第 i 个位置插入一个新元素的算法的时间复杂度为( )(1Llink=q;q-Rlink=p;p-Llink-Rlink=q;q-Llink=q; B. p-Llink=q;p-Llink-Rlink=q;q-Rlink=p;q-Llink=p-Llink; C. q-Rlink=p;q-Llink=p-Llink;p-Llink-Rlink=q;p-Llink=q; D. q-Llink=p-Llink;q-Rlink=q;p-Llink=q;p-Llink=q; 24在单链表指针为 p 的结点之后插入指针为 s 的结点,正确的操作是: ( ) 。 Ap-next=s;s-ne

20、xt=p-next; B s-next=p-next;p-next=s; Cp-next=s;p-next=s-next; D p-next=s-next;p-next=s; 【青岛大学 2001 五、3(2 分) 】 25对于一个头指针为 head 的带头结点的单链表,判定该表为空表的条件是( ) Ahead=NULL Bheadnext=NULL Cheadnext=head Dhead!= NULL 【北京工商大学 2001 一、5(3 分) 】 26. 在双向链表存储结构中,删除 p 所指的结点时须修改指针( ) 。 A (p.llink).rlink:=p.rlink (p.rlin

21、k).llink:=p.llink; B p.llink:=(p.llink).llink (p.llink).rlink:=p; C (p.rlink).llink:=p p.rlink:=(p.rlink).rlink 数据结构 1800 题 郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org 11D p.rlink:=(p.llink).llink p.llink:=(p.rlink).rlink; 【西安电子科技大学 1998 一、1(2 分) 】 27. 双向链表中有两个指针域,llink 和 rlink 分别指向前趋及后继,设 p 指向

22、链表中的一个结点,现要求删去 p 所指结点,则正确的删除是( ) (链中结点数大于 2,p 不是第一个结点) Ap.llink.rlink:=p.llink; p.llink.rlink:=p.rlink; dispo se(p); Bdispose(p); p.llink.rlink:=p.llink; p.llink,rlink:=p. rlink; Cp.llink.rlink:=p.llink; dispose(p); p.llink.rlink:=p. rlink; D以上 A,B,C 都不对。 【南京理工大学 1997 一、1(2 分) 】 二、判断 1. 链表中的头结点仅起到标识

23、的作用。( )【南京航空航天大学 1997 一、1(1 分) 】 2. 顺序存储结构的主要缺点是不利于插入或删除操作。( )【南京航空航天大学 1997 一、2(1 分) 】 3线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( ) 【北京邮电大学 1998 一、2(2 分) 】 4顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。( ) 【北京邮电大学 2002 一、2(1 分) 】 5. 对任何数据结构链式存储结构一定优于顺序存储结构。( )【南京航 空航天大学 1997 一、3(1 分) 】 6顺序存储方式只能用于存储线性结构。( ) 【中科院软件所 1999 六

24、、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. 线性表只能用顺序存储

25、结构实现。( )【青岛大学 2001 四、2(1 分) 】 13. 线性表就是顺序存储的表。( )【青岛大学 2002 一、1(1 分) 】 14为了很方便的插入和删除数据,可以使用双向链表存放数据。( ) 【上海海运学院 1995 一、1(1 分) 】 【上海海运学院 1997 一、2(1 分) 】 15. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。 ( ) 【上海海运学院 1996 一、1(1 分) 】 【上海海运学院 1999 一、1(1 分) 】 16. 链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。 ( ) 【上海海运学院 19

26、98 一、2(1 分) 】 三、填空 1当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_存储结构。 【北方交通大学 2001 二、4】 2线性表L=(a1,a2,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是_。 【北方交通大学 2001 二、9】 3设单链表的结点结构为(data,next),next 为指针域,已知指针 px 指向单链表中 data 为x 的结点,指针 py 指向 data 为 y 的新结点 , 若将结点 y 插入结点 x 之后,则需要执行以下语句:_; _;【华中理工大学 20

27、00 一、4(2 分) 】 4在一个长度为 n 的顺序表中第 i个元素(10 DO 数据结构 1800 题 郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org 13BEGIN (2); (3); (4); (5); read(k) END; q.next:=NIL; END;【北京师范大学 1999 三】 21. 已给如下关于单链表的类型说明: TYPE list=node ; node=RECORD data: integer; next: list; END; 以下程序采用链表合并的方法,将两个已排序的单链表合并成一个链表而不改变其排序性(升序

28、),这里两链表的头指针分别为 p 和 q. PROCEDURE mergelink(VAR p,q:list): VAR h,r: list; BEGIN (1)_ h.next:= NIL; r:=h; WHILE(pNIL) DO IF (p.dataq.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 分) 】 2

29、3PROC ins_linklist(la:linkisttp; i:integer; b:elemtp); la 为指向带头结点的单链表的头指针,本算法在表中第 i 个元素之前插入元素 b p:=(1) ; j:=(2) ;指针初始化,j 为计数器 WHILE (p=0)之后插入一个元素为 x 的结点,请在答案栏给出题目中_处应填入的语句或表达式,使之可以实现上述功能。 PROCEDURE insert(VAR head:dpointer;i,x:integer); VAR s,p:dpointer; j: integer; BEGIN new(s); s.data:=x; IF(i=0)T

30、HEN BEGIN s.right:=head; (1)_ head:=s END如果i=0,则将s结点插入到表头后返回 ELSE BEGIN p:=head; (2)_;在双链表中查找第 i 个结点,由 p 所指向 WHILE (pL.elemj 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个结点的环形链表按一定的次序逐

31、个输出并删除链表中的所有结点, 参数 n(n0)指明环形链表的结点个数, 参数 i(10)是步长,指明从起始结点或前次被删除并输出的结点之后的第 m 个结点作为本次被输出并删除的结点。例如,对于下图中具有 6 个结点的环形链表,在调用 josephus( 6,3,2)后,将输出 5,1,3 ,6,4,2 请在横线处填上适当内容,每空只填一个语句。 TYPE nodeptr=nodetype; nodetype=RECORD data: intrger; link: nodeptr END; VAR n,i,m: integer; FUNCTION Create_link_list(n: int

32、eger): nodeptr; VAR head,p,q: nodeptr; i:integer; BEGIN head := NIL; IF n0 THEN BEGIN new(head); p: =head; FOR i:=1 TO n-1 DO BEGIN p.data:=i; new(q); (A)_; (B)_ END; p.data:=n; (C)_; END; Creat_link_list:=head END; PROCEDURE josephus(n,i,m:integer); VAR p,q:nodeptr; j:integer; BEGIN p:=Creat_link_l

33、ist(n); WHILE i1 DO BEGIN p:=p.link; i:=i-1 END; (D)_ ; WHILE j NIL DO BEGIN p:= NIL ;q:= head;r:= q ;s:=q.link ; WHILE s p.pre.freq DO p:=p.pre; IF pa DO (1)_ ; WHILE p.key=p.next.key DO q:=p; p=p.next;跳过相同字母 r:=b.next ; (2)_ _; WHILE r.key b THEN s:=p; q.next:=p.next; (3) ; s.next:=c.next; c.next:

34、=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. 下

35、面是用 c 语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用 L 返回逆置后的链表的头指针,试在空缺处填入适当的语句。 void reverse(linklist q-next=p;p=q;(2)_ ; (3)_; 【北京理工大学 2001 九、1 (6 分) 】 32下面程序段是逆转单向循环链表的方法,p 0 是原链表头指针,逆转后链表头指针仍为 p 0。 (可以根据需要增加标识符) p:= p0; q0:=NIL; WHILE (1)_ _ DO BEGIN (2)_ _; (3)_ _;(4)_ ;(5)_ END; p.next:= q0; p0 .next:=p; p0:=

36、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

37、)_ AND (p.nextNIL ) DOq:=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 num0 DO insert(head,num); read(num) ENDP;【南京理工大学 1999 三、4(11 分) 】 34. 一元稀疏多项式以循环单链表按降幂排列, 结点有三个域, 系数域 coef , 指数域 exp 和指针域 ne

38、xt;现对链表求一阶导数 ,链表的头指针为 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=REC

39、ORD data:integer; next: pointer END; PROCEDURE delmax (L:pointer); 数据结构 1800 题 郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.989.org 19VAR p,q,r:pointer; m:integer; BEGIN r:=L; p:=L.next; IF pNIL DO IF (2)_THEN (3)_ ; m:=p.data; (4)_; p:=p.next; q:=r.next; (5)_ ; dispose(q); END;【北京科技大学 1998 二】 36对单链表中元素

40、按插入方法排序的 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=q-next; u=p-next; (4)_; (5)_; p=u; 【北京科技大学 2001 二 (10 分) 】 37下面是一个求两个集合 A 和B之差 C=A-B的程序,即当

41、且仅当 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运算执行完毕,再删除并释放表示结果集合的链表的表头结点。 程序

42、(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) 数据结构 1800 题 郴州都市网 www.0735.cc 郴州人才网 www.CZHR.com www.

43、989.org 20NODE *C,*last; C=last=(NODE*) malloc (sizeof(NODE); while (1)_ if (A-elementelement) 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=diff

44、erence(A,B);*/【上海大学 2000 一、4 (10 分) 】 四 应用题 1线性表有两种存储结构:一是顺序表,二是链表。试问: (1)如果有 n 个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构? 为什么? (2)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?为什么?【西安电子科技大学 1999 软件 二、1 (5 分) 】 2线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;其二,由于难以估计,必须预先分配较大的空间,往往使

45、存储空间不能得到充分利用;其三,表的容量难以扩充。线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨论之。 【重庆大学 2000 二、5】 3若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?为什么? 【北京航空航天大学 1998 一、2(4 分) 】 4线性结构包括_、_、_和_。线性表的存储结构分成_和_。请 用类PASCL 语言描述这两种结构。 【华北计算机系统工程研究所 1999 一、2(10 分) 】 5线性表(a 1,a 2,a n)用顺序映射表示时,a i和a i+1(1NIL THEN WHILE pre.next=pre.data THEN pre:

46、=p ELSE r eturn(false) END; return(true); 【燕山大学 2000 七、1 (7 分) 】 12. 设单链表结点指针域为 next,试写出删除链表中指针 p 所指结点的直接后继的 C 语言语句。 【北京科技大学 2000 一、3】 13. 设单链表中某指针 p 所指结点(即 p 结点)的数据域为 data,链指针域为 next,请写出在 p 结点之前插入 s 结点的操作(PASCAL 语句) 。 【北京科技大学 1999 一、2 (2 分) 】 14. 有线性表(a 1,a2,a n),采用单链表存储,头指针为 H,每个结点中存放线性表中一个元素,现查找某个元素值等于 X 的结点。分别写出下面三种情况的查找语句。要求时间尽量少。 (1)线性表中元素无序。 (2)线性表中元素按递增

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报