[考研类试卷]计算机专业基础综合数据结构(线性表)历年真题试卷汇编5及答案与解析.doc
《[考研类试卷]计算机专业基础综合数据结构(线性表)历年真题试卷汇编5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[考研类试卷]计算机专业基础综合数据结构(线性表)历年真题试卷汇编5及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、计算机专业基础综合数据结构(线性表)历年真题试卷汇编 5 及答案与解析一、综合题1 线性表的顺序存储结构具有三个弱点:第一,在作插入或删除操作时,需要移动大量元素;第二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;第三,表的容量难以扩充。试问,线性表的链式存储结构是否一定能够克服上述三个弱点? 请简述之。 【北京师范大学 2003 二、4(6 分)】2 线性结构包括_、_、_和_。线性表的存储结构分成_和_。【华北计算机系统工程研究所 1999 一、2(10 分 )】3 线性表(a 1,a 2,a n)用顺序映射表示时,a i 和 ai+1(1inn)的物理位置相邻吗
2、? 链接表示时呢? 【东南大学 1996 一、1(5 分) 】4 设 LS 是一个线性表,LS=(a 1,a 2,a n),若采用顺序存储结构,则在等概率的前提下,插入一个元素需要平均移动的元素个数是多少?若元素插在 ai 与 ai+1 之间(0in 一 1)的概率为(n 一 i)n *(n+1)2),则插入一个元素需要平均移动的元素个数又是多少? 【西安电子科技大学 2001 软件二、3(5 分)】5 说明在线性表的链式存储结构中,头结点与首元结点的关系。 【厦门大学 2000五、1(14 3 分) 】6 在单链表和双向链表中,能否从当前结点出发访问到任何一个结点? 【西安电子科技大学 19
3、99 计算机应用一、1(5 分)】7 如何通过改链的方法,把一个单向链表变成一个与原来链接方向相反的单向链表?【中国人民大学 2001 二、4(2 分)】8 设双向循环链表中结点的数据域、前驱和后继指针域分别为 data、pre 和 next,试写出在指针 P 所指结点之前插入一 S 结点的 C 语言描述语句。【北京科技大学2001 一、3(2 分) 】9 现有一无表头结点的单链表 L,p、q、r 为 Lnode 类型的指针。请阅读下列算法并给出算法的功能描述:aa(Lnode *L)p=L;q=NULL;while(P!=NULL)r=p 一next;p 一next=q;q=p;p=r ;)
4、L=q;【北京理工大学 2006 六、7(507 分)】10 请简要说明下列函数的主要功能。void func(LinkList L1,LinkList L2)LNode*p, *q, *r;q=L2 一next;while(q)P*L1;while(p 一next)if(p 一next-data=q 一data)(r=P 一next;P 一next=r 一next;free(r);P=P 一next;q=q 一next;return;【北京理工大学 2006 十一、2(5 分)】11 阅读下面的算法,说明算法实现的功能。node*1ink(node *headl, *head2)node*p
5、, *q; p=headl;while(p 一next!=headl)p=p 一next;q=head2;while(q 一next!=head2) q=q 一next;P 一next=head2;q 一next=headl;return(headl);【东华大学 2004 二、1(10 分)】12 线性表的双向链表的存储结构为:Typedef struct DNodeTElem info; structDNode*left; struct DNode*right; ;并假设己建立头指针为 head 的双向链表,p 指向其中某个结点,写一个程序段,从该循环链表中删除 p 所指向结点的前一个结点
6、(假设该结点存在)。【华南理工大学 2005 二、1(4 分) 】二、设计题13 已知一个带有表头结点的单链表,结点结构为(data,link),假设该链表只给出了头指针 list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第 k 个位置上的结点(k 为正整数),若查找成功,算法输出该结点的 data 域的值,并返回 1;否则,只返回 0,要求:(1)描述算法的基本设计思想;(2)描述算法的详细实现步骤;(3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用 C 或 C+或 Java 语言实现),关键之处请给出简要注释。【2009 年全国试题 42(15 分)】14
7、 设将 n(n1)个整数存放到一维数组 R 中。试设计一个在时间和空间两方面都尽可能高效的算法,将 R 中保存的序列循环左移 P(00 0,X 1,X n-1)变换为(XP2,X P+1,X n-1,X 0,X 1,X P-1)。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用 C 或 C+或 Java 语言描述算法,关键之处给出注释。 (3)说明你所设计算法的时间复杂度和空间复杂度。 【2010 年全国试题 42(13 分)】15 一个长度为 L(L1)的升序序列 S,处在第L2个位置的数称为 S 的中位数。例如列 S1=(11,13,15,17,19),则 S1 中的中位数
8、是 15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若 92=(2,4,6,8,20),则S1和 S2 的中位数是 11。现有两个等长升序序列 A 和 B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列 A 和 B 的中位数。要求:(1)给出算法的基本设计思想。(2)根据设计思想,采用 C 或 C+或 Java 语言描述算法,关键之处给出注释。(3)说明你所设计算法的时间复杂度和空间复杂度【2011 年全国试题 42(15)分】16 假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间。例如,“loading”和“being”的存
9、储映像如下图所示。设 str1和 str2 分别指向两个单词所在单链表的头结点,链表结点结构为 。请设计一个时间上尽可能高效的算法,找出由 str1 和 str2 所指的两个链表共同后缀的起始位置(如图中字符 i 所在结点的位置 p)。要求:(1)给出算法的基本设计思想。(2)根据设计思想,采用 C 或 C+或 Java 语言描述算法,关键之处给出注释。(3)说明你所设计算法的时间复杂度。2012 年全国试题 42(13 分)】17 用单链表保存 m 个整数,结点的结构为(data, link),且data要求:(1)给出算法的基本思想。(2) 使用 C 或 C+语言,给出单链表结点的数据类型
10、定义。(3)根据设计思想,采用 C 或 C+语言描述算法,关键之处给出注释。(4)说明所涉及算法的时间复杂度和空间复杂度。18 假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。【北京大学 1998 三、1(5 分)】【厦门大学2006 1(3)(203 分)】19 已知 L1、L2 分别为两循环单链表的头结点指针,m 、n 分别为 L1、L2 表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。【东北大学 1996 二(12 分)】20 设
11、有两个链表,ha 为单向链表, hb 为单向循环链表。编写算法,将两个链表合并成一个单向链表,要求算法所需时间与链表长度无关。【南京航空航天大学1997 四(8 分)】21 已知三个带头结点的线性链表 A、B 和 C 中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对 A 表进行如下操作:使操作后的链表 A 中仅留下三个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为 O(m+n+p),其中 m、n 和 p 分别为三个表的长度。【清华大学 1995 一(15 分)】22 顺序结构线性表 LA 与 LB 的结点关键字为整数。
12、 LA 与 LB 的元素按非递减有序,线性表空间足够大。试用类 Pascal 语言给出一种高效算法,将 LB 中元素合并到 LA 中,使新 LA 的元素仍保持非递减有序。高效指最大限度地避免移动元素。【北京工业大学 1997 一、2(12 分)】23 已知长度为 n 的线性表 A 采用顺序存储结构,请写一时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法删除线性表中所有值为 item 的数据元素。(O(1) 表示算法的辅助空间为常量)。【北京航空航天大学 2000 五(10 分)】【天津大学 2005八(10 分 )】24 已知消费总金额,请设计一个发票打印程序,打印输出的发票金额单
13、位为:千百十元。【南京航空航天大学 2004 三、3(8 分)】25 写算法将单链表 L1 拆成两个链表,其中以 L1 为头的链表保持原来向后的链接,另一个链表的头为 L2,其链接方向与 L1 相反,L1 包含原链表的奇数序号的结点,L2 包含原链表的偶数序号的结点。【东华大学 2004 三(10 分)】26 试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法 void delete(LinklistL) 。【北京理工大学 2001 九、3(8 分)】27 用类 CC+设计算法,判断一个带表头结点的双向循环链表 DL(DuIJnkList)是否对称相等。 (比如,表(25,34,3
14、4,25)和表(25,3,25)为对称的。)【南京理工大学 2005 三(5 分) 】其中结点结构为:struct NodeE1emType data; ElemType 代表某种抽象数据类型Node*Llink, *R1ink;28 已知两个单链表 A 和 B,其头指针分别为 heada 和 headb,编写一个过程从单链表 A 中删除自第 i 个元素起的共 len 个元素,然后将单链表 A 插入单链表 B 的第 j 个元素之前。【中国矿业大学 2000 三(10 分)】29 假设一个单循环链表,其结点含有三个域 pre、 data、link。其中 data 为数据域;pre 为指针域,它的
15、值为空指针(NIL);link 为指针域,它指向后继结点。请设计算法,将此表改成双向循环链表。 【西安电子科技大学 1999 软件五(10 分)】30 已知一个单链表中每个结点存放一个整数,并且结点数不少于 2,请设计算法以判断该链表中第二项起的每个元素值是否等于其序号的平方减去其前驱的值,若满足则返回 ture,否则返回 false。 【西安电子科技大学 2000 软件二(10 分)】31 两个整数序列 A=a1, a2,a3,am 和 B=b1,b2,b3,bn 已经存入两个单链表中,设计一个算法,判断序列 B 是否是序列 A 的子序列。【东北大学1999 二(10 分) 】32 L1 与
16、 L2 分别为两单链表头结点地址指针,且两表中数据结点的数据域均为一个字母。设计把 L1 中与 L2 中数据相同的连续结点顺序完全倒置的算法。【东北大学 1997 四(15 分) 】例:33 已知 L 为链表的头结点地址,表中共有 m(m3)个结点,从表中第 i 个结点(1im) 起到第 m 个结点构成一个循环部分链表,设计将这部分循环链表中所有结点顺序完全倒置的算法。【东北大学 1998 三(15 分)】34 请写一个算法将顺序存储结构的线性表(a 1an)逆置为(a na1)。【大连海事大学1996 八(6 分)】35 写出一个从表尾到表头的逆向建立单链表的算法。【中科院研究生院 2004
17、 三(7分)】36 已知一带头结点的递增有序单链表,请在原结点上将其倒序。【南京航空航天大学 2004 二、4(12 分) 】37 试编写求倒排循环链表元素的算法。【南京航空航天大学 1995 十二(10 分)】38 已知 p 是指向单向循环链表最后一个结点的指针,试编写只包含一个循环的算法,将线性表(a 1,a 2, ,a n-1,a n)改造为(a 1,a 2,a n-1,a n,a n-1,a 2,a 1)。【北京理工大学 2005 十四、1(5 分)】39 编写逆向输出不带头结点的单向链表中数据域的递归算法。设表中有 4 个结点,从表头至表尾其数据域分别为 10,30,20,40,作图
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 试卷 计算机专业 基础 综合 数据结构 线性 历年 汇编 答案 解析 DOC
