2012答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、填空题(9 小题,每空 1 分,共 15 分)
1 . 当 一 个 线 性 表 经 常 进 行 存 取 操 作 而 很 少 进 行 插 入 和 删 除 操 作 时 , 则 采 用 _______________存储结构为宜,相反,当经常进行的是插入和删除操作时.则采用 _____________存储结构为 答案 顺序、链式 2. 当向一个顺序表插入一个元素时,从插入位置开始向后的所有元索均________一个 位置,移动过程是从_______向_________依次移动每一个入素。 答案:后移、后、前 3. 已知一个栈的输入序列为 1,2,3,…,n ,则其输出序列的第 2 个元素力 n 的输出 序列的种数是________。 答案:n­1 4. 用循环链表表示的队列长度为 n,若只设头指针,则出队和入队的时间复杂度分别是 O(1) 和 __________ ;若只设尾指针,则出队和人队的时间复杂度分别是 ________ 和 ___________。
三、简答题(5 小题,共 40 分)
1.用深度优先搜索遍历下图所示的无向阁,试给出以 A 为起点的顶点访问序列(同一 个顶点的多个邻点,按字母顺序访问),并给出一棵最小生成树。 (8 分)
顶点访问序列:A B E D H I F C G J 最小生成树:
­­­­3 分
­­­­5 分 2. 计算下图所示的 AOE 网中各顶点所表示的事件发生时间 ve(j)、v1(j),所表示活动 的开始时间 e(i),l(i),并找出其关键路径。 其中: a1=2, a2=3, a3=3, a4=5, a 5=9, a6=4, a7=6. a8=2, a9=3。
第 3 页 共 8 页
第 4 页 共 8 页
2 a1 1 a2 a3 3
a4
4 a8 a7 a9 5 6
a5 a6
答: ve(1)=0 ve(2)=max(a1,a2+a3)=3+3=6 ve(3)=3 ve(4)= max(6+a4,3+a5)=3+9=12 ve(5)=12+6=18 ve(6)=18+3=21 ­­­2 分 vl(6)=ve(6)=21 vl(5)=21­3=18 vl(4)=18­6=12 vl(3)=12­9=3 vl(2)=12­5=7 vl(1)=3­3=0 ­­­2 分 e(a1)=ve(1)=0 e(a2)=0 e(a3)=ve(3)=3 e(a4)=ve(2)=6 e(a5)=ve(3)=3 e(a6)=ve(3)=3 e(a7)=ve(4)=12 e(a8)=ve(4)=12 e(a9)=ve(5)=18 ­­­2 分 l(a9)=vl(6)­a9=21­3=18 l(a8)=21­2=19 l(a7)=vl(5)­a7=18­6=12 l(a6)=vl(5)­a6=18­4=14 l(a5)=vl(4)­a5=12­9=3 l(a4)=vl(4)­a4=12­5=7 l(a3)=vl(2)­a3=7­3=4 l(a2)=vl(3)­a2=3­3=0 l(a1)=vl(2)­a1=7­2=5 ­­­2 分 1 ve vl 0 0 2 6 7 3 3 3 4 12 12 5 18 18 6 21 21
第 1 页 共 8 页
第 2 页 共 8 页
C.任一结点无左孩子 D.任一结点无右孩子 9. 采用哈希技术实现表的存储和查找,需解决的主要问题是( D ) A.如何申请到足够大的空间 B.如何正确认识元素之间的逻辑关系 C.如何找到一个好的查找方法 D.如何构造一个散列地址均匀分布的哈希函数 10. 表 A 中有 1000 个元素,如果要求求出其中最大的 10 个元素,则采用( A )排序方 法最省时间。 A.堆排序 B.希尔排序 C.快速排序 D.直接选择排序 11. 设连通图 G 的顶点数为 n,则 G 的生成树的边数为( B )。 A.n B.n­1 C.2n D.2n­1 12. 若在线性表中采用折半查找法查找元素。该线性表应该是( C ) A 元素按值有序 B.采用顺序存储结构 C. 元素按值有序,且采用顺序存储结构 D. 元素按值有序,且采用链式存储结构 13. 在待排序文件已基本有序的前提下,下述排序方法中效率最高的是( A ) A. 直接插入排序 B. 直接选择排序 C. 快速排序 D. 归并排序 14. 无向图中一个顶点的度是指图中( B )。 A. 通过该顶点的简单路径数 B.与该顶点相邻接的顶点数 C.通过该顶点的回路数 D.与该顶点连通的顶点数 15.在下列排序方法中,平均时间性能为 O(nlogn)且空间性能最好的是( B )。 A. 快速排序 B.堆排序 C.归并排序 D.基数排序
a1 a2 a3 a4 a5 a6 a7 a8 a9 e 018 14 12 19 18
所以,图中关键路径为 a2、a5、a7、a9,即(v1、v3、v4、v5、v6) ­­­2 分 3. 一棵二叉树由 A、B、C、D、E、F、I、J、K 九个结点构成,其先序、中序和后序遍 历序列分别如下,具中一部分未标出,请构造出该二叉树。 (6 分) 先序:AC D EGH K 中序:C B FAKIG 后序:E FDBJIA
第 5 页 共 8 页
第 6 页 共 8 页
while(p!=s &&p­>data!=x) p=p­>next; if(p==s) return NULL; p­>freq++; q=p­>prior; /*向前查找*/ while(q!=s && q­>freq<p­>freq) q=q­>prior; if (q!=p­>prior) { p­>prior­>next=p­>next; p­>next­>prior=p­>prior; p­>next=q­>next; q­>next­>prior=p; q­>next=p; p­>prior=q; } return p; } 2. 编写算法 find,使 find 可以求出指定结点在给定的二叉排序树中所在的层数。 typedef struct BiTNode{ /*记录类型*/ KeyType key; /*关键字项*/ struct BiTNode *lchild,*rchild; /*左右孩子指针*/ } BiTNode, *BiTree; int find(BiTree T, BiTNode *p) { if (p==NULL) return 0; int layer=1; while (T!=NULL) { if (p==T) return layer; if (p­>key<T­>key) T=T­>lchild; else T=T­>rchild; layer++; } return 0; }
4. 从空树起,依次插入关键字 40、8、90、15、62、95、12、23、56、32,构造一课二 叉排序树。 (1)画出该二叉排序树。 (2)画出删去该树中元素值为 90 的结点之后的二叉排序树。
­­­5 分
­­5 分
5. 巳知—个文件的初始关键字序列为:265 301 751 129 937 863 742 694 76 438。写出建成大顶堆后的序列和第一次堆排序后重建大顶堆的序列。 初始大顶堆: 973 694 863 265 438 751 742 129 76 301 ­­3 分 第一次堆排序后重建大顶堆:863 694 751 265 438 301 742 129 76 ­­3 分
答案:O(n)、O(1)、O(1) 5.取出广义表 A=((a, x, y, z), (b, c)中的原于 c 的 Tail()和 Head()组成的复合函数是: __________________。 答案:Head(Tail(Head(Tail(A)))) 6. 已知完全二叉树的第 6 层有 4 个结点,则其叶子结点数是_______________. 答案:18 个 7. 在一个有向图中,所有顶点入度之和等于所有顶点出度之和的_____倍。 答案:1 8. 对两棵具有相同关键字集合而形状不同的二义排序树,____________遍历它们得到 的序列的顺序是一样的。 答案:中序 9. 设表中元素的初始状态是按键值递增的,分别用堆排序、快速排序、冒泡排序和 归并排序方法对其仍按递增顺序进行排序,则_____________最省时间,___________ 最费时间。 答案:冒泡排序、快速排序
西 安 电 子 科 技 大 学
考试时间 120 分钟

题号 分数
1.考试形式:闭卷;2。考试日期:2012 年
题(A)
五 六 七 八 九 十 总分
月 日 3.本试卷共 四 大题,满分 100 分。




班级
学号
姓名
任课教师
一、单选题(15 小题,每题 2 分,共 30 分)
数据结构中,从逻辑上可以把数据结构分成( C )。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 2. 在单链表中,指针 p 指向元素为 x 的节点,实现“删除 x 的后继”的语句是( B )。 A.p=p­>next B.p­>next= p­>next­>next C.p­>next =p D.p= p­>next­>next 3. 与线性表的链接存储不相符的特性是( B )。 A. 插入和删除操作灵活 B.需连续的存储空间 C.存储空间动态分配 D.需另外开辟空间来保存元素问的关系关于线性表 4. 设一个栈的输入序列为 A、 B 、 C 、 D , 则借助一个栈所得到的输出序列不可能是( D )。 A.A,B,C,D B.D,C,B,A C.A,C,D,B D.D,A,B,C 5. 当利用大小为 n 的数组顺序存储一个栈时,假定用 top==n 表示栈空,则向这个栈 插入一个元素时,首先应执行( B )语句修改 top 指针。 A.top++ B.top­­ C.top=0 D.top 6.链栈与顺序栈相比,比较明显的优点是( D ) A.插入操作更加方便 B.删除操作更加方便 C.不会出现下溢的情况 D.不会出现上溢的情况 7. 将一个 A[100][100]的三对角矩阵,按行优先存人一维数组 B[298] 中,A 中的元素 A[65][64]在 B 中的位置 K 为( B )。 A. 198 B.194 C. 197 D.199 8. 某二叉树的先序序列和后序序列正好相同,则该二叉树一定是( A )的二叉树 A.空或只有一个结点 B.高度等于其结点数 1.
四、算法题(3 小题,共 15 分)
1. 设计一个实现下述要求的 Locate 运算的算法:有—个双向链表,每个结点 node 有四 个域,prior、next、data 和 freq。初始化时,freq 域的值都为 0,每当在链表中进行一次 Locate (s,x)运算时,令元素值为 x 的节点中 freq 域的值增加 1,并使此链表中结点保持 按访问频度递减的顺序排列,以便使频繁访问的结点总是靠近表头。 (8 分) DuLinkList Locate(DuLinkList s, ElemType x) DuLinkList p,q; p=s­>next;
相关文档
最新文档