北京航空航天大学2001年 数据结构与程序设计试题

北京航空航天大学2001年 数据结构与程序设计试题

一、问答题(本题10分)

一般情况下,线性表可以采用哪几种存储结构?请分别叙述每一种存储结构的构造原理与特点。

二、(本题10分)

已知AOE网为G=(V,E),V={v1,v2,v3,v4,v5,v6,v7,v8,V9,vl0},E={a1,a2,a3,a4,a5,a6,a7,a8,a9,al0,a11,a12,a13,a14},其中:

a1:(v1,v2)5 a2:(v1,v3)6 a3:(v2,v5)3 a4:(v3,V4)3

a5:(v3,v5)6 a6:(v4,v5)3 a7:(v4,v7)1 a8:(v4,v8)4

a9:(v5,v6)4 al0:(v5,v7)1 a11:(v6,vl0)4 a12:(v7,v9)5

a13:(v8,v9)2 a14:(v9,v10)2

注:顶点偶对右下角的数字表示边上的权值。

请按下述过程指出所有关键路径:

ee[1:10]:

le[1:10]:

e[1:14]:

l[1:14]:

其中,ee[i]与le[i]分别表示事件vi的最早发生时间与最晚发生时间;e[i]与l[i]分别表示活动ai的最早开始时间与最晚开始时间。

三、(本题共30分,每小题10分)

欲建立一文献库,其正文(文献本身)存放在一个双向循环链表的各个链结点中。

1.为便于链结点的插入、删除操作,以及按题目、发表日期、发表者名称、主题词(假设每文最多给出三个主题词)进行检索,请设计该链表的链结点结构(给出链结点每个域的名称,并说明该域内存放什么信息。注:以下各小题设计链结点结构也这样要求)。画出整个链表结构的示意图。

2.设计一个三级索引结构,其中第三级索引称为题目索引,是按文献题目构造的稠密索引,通过该级索引并根据给定题目可得到每个文献的存放地址;该级索引按文献学科类分类存放。第二级索引称为中类索引,是题目索引的索引,指出同一中类的文献题目索引的存放位置(例如农林类、气象类......,古代史类、近代史类......)。第一级索引称为大类索引,指出同一大类(如:自然科学类、历史类......)的文献的中类索引的存放位置。请设计每一级索引的结点结构,并画出该索引的整体示意图。

3.再设计一种三级索引结构,其中第三级索引仍是题目索引(与2题所述相同),第二级索引把具有相同主题词的文献题目索引地址组织在一个单链表中。第一级索引称为主题词索引,用文献给出的主题词作关键字组成杂凑表,即该级索引为一个杂凑表,能够指出具有同一主题词的文献题目索引的索引链表的第一个链结点的存储位置。该杂凑表采用链地址法处理冲突。请设计每一

级索引的结点结构,并画出该索引的整体示意图。

四、(本题10分)

已知非空线性链表由list指出,链结点的构造为

data link

请写一算法,将链表中数据域值最小的那个链结点移至链表的最前面。要求:不得额外申请新的链结点。

五、(本题15分,第1小题5分,第2小题10分)

已知求两个正整数m与n的最大公因子的过程用自然语言可以表述为反复执行如下动作:

第一步:若n等于零,则返回m;

第二步:若m小于n,则m与n相互交换;否则,保存m,然后将n送m,将保存的m除以n的余数送n。

1.将上述过程用递归函数表达出来(设求x除以y的余数可以用xMODy形式表示)。

2.写出求解该递归函数的非递归算法。

六、(本题10分)

函数void insert(char *s,char *t,int pos)将字符串t插入到字符串s中,插入位置为pos。请用C语言实现该函数。假设分配给字符串s的空间足够认字符串t插入。(说明:不得使用任何库函数。)

七、(本题15分) 。

命令sgrep用来在文件中查找给定字符串,并输出串所在行及行号。

命令格式为:sgrep[-i]filename searchstring

其中:-i:表示查找的大小写无关,省略时表示大小写相关。

filename:给定文件名。

searchstring:所要查找的串。

用C语言实现该程序,该程序应具有一定的错误处理能力。(提示:使用命令行参数)

注意:除文件及输入/出操作可使用库函数外,其他不允许使用库函数。

相关推荐
草莓熊Lotso2 小时前
【数据结构初阶】--二叉树(二)
c语言·数据结构·经验分享·其他
朝朝又沐沐6 小时前
算法竞赛阶段二-数据结构(36)数据结构双向链表模拟实现
开发语言·数据结构·c++·算法·链表
艾莉丝努力练剑8 小时前
【数据结构与算法】数据结构初阶:详解排序(二)——交换排序中的快速排序
c语言·开发语言·数据结构·学习·算法·链表·排序算法
科大饭桶8 小时前
数据结构自学Day13 -- 快速排序--“前后指针法”
数据结构·算法·leetcode·排序算法·c
设计师小聂!10 小时前
力扣热题100----------53最大子数组和
java·数据结构·算法·leetcode
YouQian77211 小时前
问题 C: 字符串匹配
c语言·数据结构·算法
yanxing.D11 小时前
408——数据结构(第二章 线性表)
数据结构·算法
艾莉丝努力练剑11 小时前
【LeetCode&数据结构】二叉树的应用(二)——二叉树的前序遍历问题、二叉树的中序遍历问题、二叉树的后序遍历问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表
waveee12313 小时前
学习嵌入式的第三十三天-数据结构-(2025.7.25)服务器/多客户端模型
服务器·数据结构·学习
花开富贵ii13 小时前
代码随想录算法训练营二十八天|动态规划part01
java·数据结构·算法·leetcode·动态规划