什么叫算法简述算法基本特性。

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

1.什么叫算法?简述算法的基本特性。

2.如何评价一个算法?简述空间复杂性和时间复杂性的概念。

3.试分析下列各程序段的时间复杂性。

(1)i=1; (2) for(i=1; i<=m; i++) (3) x=n; /*n>1*/ k=0; for(j=1; j<=n; j++) y=0;

n=100; A[i][j] = i * j; while(x>=(y+1)*(y+1)) do{k = k + 10 * i; y = y + 1; i++; }while(i ! 100);

4.简述下列概念:数据、数据元素、数据类型、数据结构;

5.简述数据的逻辑结构、数据的存储结构和数据运算的概念。

6.线性表可用顺序表和单链表作为存储结构。试问:

(1) 两种存储表示各有哪些主要优缺点?

(2) 如果有n 个表同时并存,且处理过程中个表的长度会动态发生变化,表的

总数也可能自动变化,在此情况下应选用哪种存储表示?为什么?

(3) 若表的总数基本稳定,且很少进行插入和删除,但要求以最快速度存取表

中元素,这时应采用哪种存储表示?为什么?

7.设ha 和hb 分别是两个带表头结点的升序单链表的表头指针。试设计一个算法将这两个链表合并成为一个降序单链表。要求结果链表仍使用原来两个链表的结点空间而不另开辟其他存储空间,表中允许出现重复数据。

8.设有一个线性表12(,,,)n L a a a = ,试分别在顺序表和单链表两种存储表示方式下,各设计一个将线性表L 逆置的算法,要求不重新开辟存储空间。所谓逆置是指将线性表中的元素次序颠倒过来,即成为11(,,,)n n L a a a -'= 。

9. 设有一个栈,元素的进栈次序依次为A, B, C, D, E. 试问能否得到下面的出栈序列?若能请写出操作序列,若不能请说明原因。

(1) C, E, A, B, D (2) C, B, A, D, E (3) D, C, A, B, E

(4) A, C, B, E, D (5) A, B, C, D, E (6) E, A, B, C, D

10. 何谓队列的上溢现象?解决它有哪些方法?分别简述其工作原理。

11.试写一个算法,它借助栈逆置一个单链表。

12.已知一棵树边的集合为{,,,,,,,,,,,,},请画出这棵树,并回答下列问题:(1)哪个结点是根结点?(2)哪些是叶子结点?(3)哪个是结点g 的双亲?(4)哪些是结点g 的祖先?(5)哪些是结点g 的孩子?(6)哪些是结点e 的子孙?(7)哪些是结点e 的兄弟?哪些是结点f 的兄弟?(8)结点b 和n 的层次号分别是什么?(9)树的深度是多少?树的度是多少?(10)以结点c 为根的子树深度是多少?

13 试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 14 已知一棵度为k 树中有1n 个度为1的结点,有2n 个度为2的结点, ,有k n 个度为k 的结点,问:树中有多少个叶子结点?

15.对于如图所示的两棵二叉树,分别

写出:(1)前序遍历序列,(2)中序遍

历序列,(3)后序遍历序列,(4)层序

遍历序列。

16 已知某二叉树的后序遍历序列为:DCEGBFHKJIA,中序遍历序列为:DCBGEAHFIJK,请画出该二叉树,并写出它的前序序列和层序序列。

17 已知某二叉树的层序遍历序列为:ABCDEFGHIJ,中序遍历序列为:DBGEHJACIF,请画出该二叉树,并写出它的前序序列和后序序列。

18.把下图所示的两棵树分别转换为相应的二叉树。

19.假设用于通信的电文仅有8个字母组成,字母在电文中出现的频率分别为7,19,2,6,32,3,21,10。试为这8个字母设计哈夫曼编码。

20.给出右图所示有向图的邻接矩阵、邻接表,并给出每个顶点的入度和出度。

21.对右图所示网分别给出:

(1) 深度优先搜索遍历序列(分别从V1和V4开始);

(2)广度优先搜索遍历序列(分别从V1和V4开始);

(3)用普里姆算法求得最小生成树的过程;

(4)用克鲁斯卡尔算法求得最小生成树的过

程;

22. 对于右图所示的带权有向图分别给出: (a) 网的带权邻接矩阵,

(b) 用DIJKSTRA 方法求从V1出发到个顶点的最

短路径的过程。

23.给出右图所示无环图的所有拓扑有序序列。

24.什么是排序算法?什么是内部排序?什么是外部排序?

25.给定排序码序列为(17,8,21,35,32,15,21,25,12,23),试分别写出使用以下排序方法进行排序的过程。

(1)直接插入排序(7)快速排序(8)直接选择排序(11)二路归并排序(12)基数排序。

26.设结点序列为(60,30,90,50,120,70,40,80),试用二叉检索树的插入方法,画出按此结点序列建立的一棵二叉检索树。

27. 已知如下所示长度为12的表

( Jan, Feb, Mar, Apr, May, June, July, Aug, Sep, Oct, Nov, Dec )

按表中元素的顺序依次插入一棵初试为空的二叉排序树,请画出插入完成之后的二叉排序树,并求其在等概率情况下查找成功的平均查找长度。

28. 对关键字(22,41,53,46,30,13,01,67)按下述方法分别建立一个

长度为11的哈希表:(1)除留余数法 h(k)=k%11 和线性探查法,

(2)1()%11d h k k ==,开放定址法 11)%110)%7((1+⨯+=-k d d i i ),3,2( =i

相关文档
最新文档