哈工大 数据结构 2010春A卷 试题

哈工大2010年春季学期数据结构与算法 A 试 卷一、填空题(每空1分,共15分) 1. 在顺序存储的二叉树中,编号为i 和j 的两个结点处在同一层的条件是____________。

2.某二叉树的前序遍历序列是ABCDEFG ,中序遍历序列是CBDAFGE ,则其后序遍历序列是_______________。

3.在有n 个叶子的哈夫曼树中,分支结点总数为___________个。

4.对于含有n 个顶点e 条边的连通图,利用Prim 算法求最小生成树的时间复杂度为___________。

5. 表达式a*(b+c)-d 的后缀表达式是___________。

6. 假定一棵二叉树的结点数为18,则它的最小深度为_______,最大深度为______。

7. 设有一个n 阶的下三角矩阵A ,如果按照行的顺序将下三角矩阵中的元素(包括对角线上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与A[0][0]之间有_______ 个数据元素。

8. 设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列建成的初始堆为________________________。

9. 磁盘文件的归并技术有______________、____________、__________。

10. 设有向图G 中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为____________________。

11.设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行________趟的分配和回收才能使得初始关键字序列变成有序序列。

12. 利用Dijkstra 算法求从有向图顶点v1到其他各顶点的最短路径要求边上权值_________。

二、选择题(每题1分,共15分)1.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用___________存储方式最节省时间。

A. 顺序表B.双链表C. 单循环链表D. 带头结点的双循环链表0注意行为规范遵守考场纪律2.在一个具有n个单元的顺序栈中,假定以地址低端(即下标为0的单元)作为栈底,以top作为栈顶指针,当出栈时,top的变化为______。

A. 不变B. top=0;C.top=top-1;D. top=top+1; 3.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为_________。

A、10,15,14,18,21,36,40,20B、10,15,14,18,20,40,36,21C、10,15,14,20,18,40,36,2lD、15,10,14,18,20,36,40,214.任何一棵二叉树的叶子结点在前序、中序、后序遍历序列中的相对次序________。

A.肯定不发生改变B.肯定发生改变C.不能确定D.有时发生变化5.用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为_________。

A.5B. 6C. 8D. 96. 对线性表进行二分查找时,要求线性表必须___________。

A、以顺序方式存储B、以链接方式存储C、以顺序方式存储,且数据元素有序D、以链接方式存储,且数据方式有序7. 设散列表表长m=14,散列函数H(k)=k mod 11。

表中已有15、38、61、84四个元素,如果用线性探侧法处理冲突,则元素49的存储地址是_________。

A. 8B. 3C. 5D. 98.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是_________。

A.快速排序B.堆排序C.归并排序D. 插入排序9. 下面关于m阶B树的说法正确的是__________。

①每个结点至少有两株非空子树②树中每个结点至多有m-1个关键字③所有的叶子都在同一层上④当插入一个记录引起B树分裂后,树增高一层A. ①②③B.②③C. ②③④D. ①③10. 已知一个有序表为(12,18,24,35,47,50,62,83,90,115,134),当折半查找值为90的元素时,经过_______次比较后查找成功。

A.2B.3C.4D.511.能有效缩短关键路径长度的方法是_________。

A.缩短任意一个活动的持续时间B.缩短关键路径上任意一个关键活动的持续时间C.缩短多条关键路径上共有的任意一个关键活动的持续时间D.缩短所有关键路径上共有的任意一个关键活动的持续时间12.在采用线性探测法处理冲突所构成的闭散列表上进行查找,可能要探测多个位置,在查找成功的情况下,所探测的这些位置的关键字值________。

A.一定都是同义词B.一定都不是同义词C.不一定都是同义词D.都相同13.设哈夫曼编码的长度不超过4,若已对两个字符编码为1和01,则最多还可以对_______个字符编码。

A.2 B.3 C.4 D.514.已知图的邻接表如下所示,根据算法,则从顶点0出发深度优先遍历的结点序列是____________。

A.0 1 3 2B. 0 2 3 1C. 0 3 2 1D. 0 1 2 315. 在具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是_________。

A.O(1)B.O(n)C.O(n2)D.O(nlog2n)三、简答题:每题10分,共20分. 1.一个按数组元素有序的一维数组一定是堆吗?请说明理由。

2. 设有一组初始记录关键字为(45,80,48,40,22,78),可以构造出一棵二叉排序树,若不是平衡树则调整平衡,并给出其前序遍历该树的序列,并写出右旋转函数算法。

四、算法设计:每题10分,共20分要求:⑴描述算法设计的基本思想⑵描述算法的详细实现步骤⑶根据设计思想和实现步骤,采用程序设计语言描述算法(使用C 或C++或JA VA 语言实),关键之处请给出简要注释。

(栈、队列的存储结构、基本操作可以直接引用)1.对给定的序号j(1<j<n),要求在无序记录A[1]~A[n]中找到按关键码从小到大排在第j位上的记录,试利用快速排序的划分思想设计算法实现上述查找。

2.设计算法,判断以邻接表存储的有向图中是否存在由顶点vi到顶点vj的路径(i≠j)。

参考答案:一.填空:1.logi=logj 2.CDBGFEA 3. n-1 4. O(n2) 5.abc+*d-6. 5 187.i(i+1)/2+j-18. 16 18 19 20 30 229.多路归并、I/O并行处理初始归并段产生10.1,4,2,3 11. 3 12.非负二、单选:1A2C3A4A5A6C7A8C9B10A11D12C13C14D15B三、简答:1. 按数组元素有序的一维数组一定是堆。

(4分)非升序数组一定是最小堆为例说明如下:假设非升序数组为K1, K2, …,K n,则满足K1 ≤ K2, ≤…≤ K n,则一定满足:K i≤ K2i且K i≤ K2i+1,即满足最小堆的定义。

同理可知,非降序数组一定是最大堆。

因此,按数组元素有序的一维数组一定是堆。

(6分)2. 二叉平衡树为48,40,80,22,45,78 (3分)前序:48,40,22,45,80,78 (3分)右旋转函数:void R_Rotate(BSTree &p){ lc=p->lchild;p->lchild=lc->rchild;lc->rchild=p;p=lc;}四、算法1. 1、本算法不要求将整个记录进行排序,而只进行查找第j个记录。

(1)基本思想:改进划分算法,是一次划分将基准元素定位于k,如果k==j,则找到第j小的元素;否则,递归地在k的左边或右边进行划分,直到k==j 为止。

(2) 数据结构:略(3) 算法如下:int Search( int A[ ], int n, int j ){s = 1; t = n ;k = Partition( A, s, t);while ( k != j )if ( k < j ) k = Partition (A, k+1,t);else k = Partition (A, s,k-1 );return A[j];}int Partition (int A[ ], int low ,int high ){i = low; j = high; pivot = A [ low ];while ( i < j ){while ( A[j] >= pivot && i < j ) j --;if (i < j )A[ i++ ] = A[ j ];while ( A[j] < pivot && i < j ) i ++;if (i < j )A[ j-- ] = A[ i ];}A[ i ] = pivot;return i;}2. int visited[MAXSIZE]; //指示顶点是否在当前路径上int exist_path_DFS(ALGraph G,int i,int j){if(i==j) return 1; //i就是jelse{ visited[i]=1;for(p=G.vertices[i].firstarc;p;p=p->nextarc){k=p->adjvex;if(!visited[k])return exist_path(k,j);//i下游的顶点到j有路径}//forreturn 0;}//else}//exist_path_DFS。

合集下载

(完整版)哈尔滨工业大学数据库试题(含答案)

(完整版)哈尔滨工业大学数据库试题(含答案)

(完整版)哈尔滨工业大学数据库试题(含答案)试卷一(哈尔滨工业大学)一、选择题(每题1分,共20分)1.在数据管理技术的发展过程中,数据独立性最高的是()阶段。

A. 数据库系统B. 文件系统C. 人工管理D. 数据项管理2. ()是存储在计算机内的有结构的数据集合。

A. 网络系统B. 数据库系统C. 操作系统D. 数据库3. 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是()。

A. 外模式B. 内模式C. 存储模式D. 模式4. 作为关系数据系统,最小应具备的关系运算是()。

A. 排序、索引、统计B. 选择、投影、连接C. 关联、更新、排序D. 显示、打印、制表5. 在select语句中使用group by Sno时,Sno 必须出现在()子句中。

A. whereB. fromC. selectD. having6. 在where语句的条件表达式中,与零个或多个字符匹配的通配符是()。

A. *B. ?C. %D. _7. 对关系模式进行分解时,要求保持函数依赖,最高可以达到()。

A. 2NFB. 3NFC. BCNFD. 4NF8. 在关系模式R(U,F)中,Y∈XF+是X→Y是否成立的()。

A. 充分必要条件B. 必要条件C. 充分条件D. 既不充分也不必要条件9. 在关系数据库设计阶段中,完成关系模式设计的阶段是()。

A. 需求分析阶段B. 概念设计阶段C. 逻辑设计阶段D. 物理设计阶段10. 基本E-R图就是数据库的()。

A. 外模式B. 逻辑模式C. 内模式D. 概念模式11. 从数据流图构造E-R图时,选择实体一般应先考虑数据流图中的()。

A. 数据项B. 数据流C. 数据处理D. 数据存储12. 以下()不是当前常用的存取方法。

A. 索引方法B. 聚簇方法C. HASH方法D. 链表方法13. 事务一旦提交,对数据库的改变是永久的,这是事务的()。

A. 原子性B. 一致性C. 隔离性D. 持久性14. 并发控制要解决的根本问题是保持数据库状态的()。

2010黑龙江省数据结构考试高级

2010黑龙江省数据结构考试高级
ቤተ መጻሕፍቲ ባይዱ
2、设 T 是一棵满二叉树,编写一个将 T 的先序遍历序列转换为后序遍历序列的递归算法。 3、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表 头指针为 head。 二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表 指针。分析你的算法的时、空复杂度。 4、在有向图 G 中,如果 r 到 G 中的每个结点都有路径可达,则称结点 r 为 G 的根结点。编写 一个算法完成下列功能: (1) .建立有向图 G 的邻接表存储结构; (2) .判断有向图 G 是否有根,若有,则打印出所有根结点的值。 5、 由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树, 下面程序的作用是实现由 已知某二叉树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序 遍历序列,请写出程序所缺的语句。 #define MAX 100 typedef struct Node {char info; struct Node *llink, *rlink; }TNODE; char pred[MAX],inod[MAX]; main(int argc,int **argv) { TNODE *root; if(argc<3) exit 0; strcpy(pred,argv[1]); strcpy(inod,argv[2]); root=restore(pred,inod,strlen(pred)); postorder(root); } TNODE *restore(char *ppos,char *ipos,int n) { TNODE *ptr; char *rpos; if(n<=0) return NULL; ptr->info=(1)_______; for((2)_______ ; rpos<ipos+n;rpos++) if(*rpos==*ppos) break; k=(3)_______; ptr->llink=restore(ppos+1, (4)_______,k ); ptr->rlink=restore ((5)_______+k,rpos+1,n-1-k); return ptr; } postorder(TNODE*ptr) { if(ptr=NULL) return; postorder(ptr->llink); postorder(ptr->rlink); } int k;

哈尔滨工业大学数字电路部分真题2010年

哈尔滨工业大学数字电路部分真题2010年
(分数:1.00) A.正确 B.错误
2.填空或选择填空(总题数:6,分数:0.00)
1. 已知被转换信号的上限频率为10kHz,则A/D转换器的采样频率应高于______,完成一次转换所用时间应小 于______。
(分数:4.00) 填空项1:__________________ 2. 半导体存储器按功能分______和______两种。
(分数:1.00) A.正确 B.错误 3. TTL逻辑门的噪声容限表示逻辑门带负载的能力。
(分数:1.00) A.正确 B.错误 4. 传送门也称为数字开关,它只能传输数字信号。
(分数:1.00) A.正确 B.错误 5. 任何时钟触发器状态的改变仅与时钟的动作沿到来有关。
(分数:1.00) A.正确 B.错误 6. 在时序逻辑电路中,若所有触发器共用一个时钟源,则是异步时序逻辑电路。
(分数:4.00) 填空项1:__________________ 5. 用运算放大器组成的矩形波发生电路由______和______两个基本部分组成,运算放大器工作在______状态 。
(分数:6.00) 填空项1:__________________ 6. 长尾式差分放大电路,在运行单边静态计算时,Rc应该按______计算;在进行差模动态计算时,Re应该按 ______计算;在进行共模动态计算时,Re应该按______计算。
(分数:7.00) __________________________________________________________________________________________ .电路如图所示,试完成下列各项:
(分数:7.00) 8. 试用图(a)所示74Ls161和适当的逻辑门设计一个电路实现图(b)所示的状态转换图,要求使用置数端LD完成 ;(分数:3.50) __________________________________________________________________________________________ 9. 在上小题电路基础上,添加最少的逻辑门实现图(c)所示波形,其中CP为外加时钟,P为电路的输出。写出 设计过程,并在图中标出信号P端。(分数:3.50) __________________________________________________________________________________________

哈尔滨工程大学-考研数据结构真题-12

哈尔滨工程大学-考研数据结构真题-12

哈尔滨工程大学-考研数据结构真题-12 哈尔滨工程大学试卷考试科目: 数据结构A 卷题号一二三四五总分分数评卷人一、单项选择题(每空1分,共15分)1、以下数据结构中,从逻辑结构看,()和其他数据结构不同。

A.树 B.字符串 C.队列 D.栈 2、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 3、有六个元素A,B,C,D,E,F的顺序进栈,()不是合法的出栈序列。

A.DEFCBA B.EDCBFA C.EFDBCA D.EDCFBA 4、字符串“ABCDEF”的子串有()个。

A.19 B.20 C.21 D.22 5、顺序表中插入一个元素,需要平均移动的元素个数为()。

A.(n-1)/2 B.n/2 C.(n+1)/2 D.n-1 6、非空的单循环链表head的尾结点(由P所指向)满足()。

A.p->next ==NULL B.p==NULL C.p->next==head D.p==head 7、若A是中序线索二叉树中的一个结点,且A不为根,则A的前驱为( )。

A.A的右子树中最右的结点 B.A的左子树中最左的结点 C.A的右子树中最左的结点 D.A的左子树中最右的结点 8、如某二叉树有30个叶子结点,有20个结点仅有一个孩子,则该二叉树中有两个孩子的结点数为()。

A.29 B.30 C.31 D.19 9、二维数组A的每个元素是由8个字符组成的串,其行下标i=0,1,…,9,列下标j=1,2,…,10。

若A按行序为主序存储,元素A[8][7]的起始地址与当A按列序为主序存储时的元素()的起始地址相同(设每个字符占一个字节)。

A.A[7][9] B.A[6][8] C.A[7][8] D.A [6][9] 10、图的深度优先遍历算法类似于二叉树的()。

A.中序遍历 B.先序遍历 C.后序遍历 D.按层遍历 11、在无向图的邻接表存储结构中,结点的个数是图中边个数的()倍。

2010《数据结构》期末试卷_A卷及答案

2010《数据结构》期末试卷_A卷及答案

一、(本题10分)(1)简述线性表的两种存储结构的主要优缺点及各自适用的场合。

(2)在折半查找和表插入排序中,记录分别应使用哪种存储结构,并用一句话简述理由。

答:(1)顺序存储是按索引(如数组下标)来存取数据元素,优点是可以实现快速的随机存取,缺点是插入与删除操作将引起元素移动,降低效率。

对于链式存储,元素存储采取动态分配,利用率高。

缺点是须增设指针域,存储数据元素不如顺序存储方便。

优点是插入与删除操作简单,只须修改指针域。

(2)在折半查找中,记录使用顺序存储,可以快速实现中点的定位;在表插入排序中,记录使用静态链表,可以降少移动记录的操作。

二、(本题10分)一棵二叉树的先序、中序和后序序列分别如下,部分未显示,请画出该二叉树。

先序序列: _ 2 3_5_7 8;中序序列: 3_4 1_7 8 6;后序序列:_ 4 2 _ _ 6 5 1。

答:三、(本题10分)假定用于通讯的电文仅由a 、b 、c 、d 、e 、f 、g 等8个字母组成,字母在电文中出现的频率分别为:0.07、0.19、0.02、0.06、0.32、0.03、0.21和0.10。

试为这些字母设计哈夫曼编码。

答:一种编码如下:a: 0010 b: 10 c:00000 d:0001 e:01 f:00001 g:11 h:0011四、(本题15分)给定下面的带权无向图G :1)从顶点0开始,请写出深度优先遍历序列和广度优先遍历序列,当有多种选择时,编号小的结点优先。

2)从顶点0开始,使用普里姆算法求出该图的最小生成树,需画出最小生成树的构造过程。

3)有人给出求解最小生成树的另外一种算法:将连通图中的边按其权值从大到小顺序逐个删123 45768厦门大学《_数据结构_》课程期末试卷信息科学与技术学院计算机科学系2008年级___专业主考教师:陈怡疆 庄朝晖 试卷类型:(A 卷)除直至不可再删,删除要遵循的原则是:保证在删除该边后各个顶点之间应该是连通的。

2010数据结构期末试卷A-推荐下载

2010数据结构期末试卷A-推荐下载

7
0
27
b
1
63
1c
15 1
1g
5
8
36
1
总分
.
考生姓名 学号
H
D
I
B
J
E
A A
K
L
F
3.已知 AOE 网如下图所示,要求完成如下任务:(20 分)
3
V1
2
4
V2
3
5
V3
(1)写出该图的邻接矩阵(3 分) 0 3 2 ∞∞∞∞∞∞ ∞ 0 ∞ 3∞4∞ ∞ ∞ ∞ ∞ 05 3 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞7 1 ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞6 ∞ ∞ ∞ ∞ ∞ ∞0 1 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞0∞ 9 ∞∞∞∞∞∞∞02 ∞∞∞∞∞∞∞∞0
B
I
V7
V8
E
J
K
9
V9
2
L
F
C G
M
.
考生姓名 学号
(3)写出该图的深度优先遍历序列(2 分)
V1 V2 V6 V7 V9 V4 V8 V3 V5
(4)写出该图的广度优先遍历序列(2 分)
V1 V2 V3 V6 V4 V5 V7 V8 V9
V1 V2 V3 V4 V5 V6 V7 V8 V9 ^
V6
4
13
7
V3 ^ V6 ^ V5 ^ V8 ^
7
V7
14
14
5
V8
11
21
20 15 14 21
14 11
.
V9
23
23
考生姓名 学号
61
23
23

哈尔滨工程大学数据结构历年试卷2参考答案

一、单项选择题(每空1分,共15分)1、B2、C3、A4、B5、D6、C7、D8、B9、A10、B11、C12、B13、B14、C15、B二、判断题(每空1分,共10分)1、×2、×3、√4、√5、×6、√7、×8、×9、×10、×三、填空题(每空1分,共10分)1、数据项2、稳定3、环4、递增5、双亲的右子树中最左下的叶子结点6、后进先出7、树内各结点度的最大值8、三元组9、广义表10、n+1四、应用题(每题7分,共35分)1、答:依题意,采用快速排序法排序的各趟的结果如下:初始:503,87,512,61,908,170,897,275,653,4621趟:[462,87,275,61,170] 503 [897,908,653,512]2趟:[170,87,275,61] 462,503 [897,908,653,512]3趟:[61,87] 170 [275] 462,503 [897,908,653,512]4趟:61 [87] 170 [275] 462,503 [897,908,653,512]5趟:61,87,170 [275] 462,503 [897,908,653,512]6趟:61,87,170,275,462,503 [897,908,653,512]7趟:61,87,170,275,462,503 [512,653] 897 [908]8趟:61,87,170,275,462,503,512 [653] 897 [908]9趟:61,87,170,275,462,503,512,653,897 [908]10趟:61,87,170,275,462,503,512,653,897,9082、答:该二叉树后序遍历的结果是:GDBLHKMIEJFCA。

3、答:带权路径长度WPL值为280。

4、答:用Kruskal算法构造的最小生成树为选边次序为(2,3),(3,4),(1,6),(1,5),(2,6)。

哈尔滨工程大学-考研数据结构真题-7

班级:学号:姓名:装订线第1页 共6页第2页 共 6页一、单项选择题(每空1分,共15分) 1.算法的时间复杂度取决于 。

A .问题的规模 B. 待处理数据的初态 C. A 和B 2.链表不具有的特点是 。

A .插入、删除不需要移动元素B .可随机访问任一元素C .不必事先估计存储空间D .所需空间与线性长度成正比3.在双向链表存储结构中,删除p 所指的结点时须修改指针 。

A . p->prior->next=p->next ;p->next->prior=p->prior ;B . p->prior= p->prior->prior ;p->prior->next=p ;C . p->next->prior=p ;p->next=p->next->next ;D . p->next = p->prior->next ; p->prior= p->next->next ; 4.输入序列为ABC ,可以变为CBA 时,经过的栈操作为 。

A. push,pop,push,pop,push,popB. push,push,push,pop,pop,popC. push,push,pop,pop,push,popD. push,pop,push,push,pop,pop5.设栈S 和队列Q 的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S ,一个元素出栈后即进队列Q ,若6个元素出队的序列是e2,e4,e3,e6,e5,e1,则栈S 的容量至少应该是 。

A . 6 B. 4 C. 3 D. 26.设有一个10阶的对称矩阵A ,采用压缩存储方式,以行序为主序存储,a 11为第一元素,其存储地址为1,每个元素占一个地址空间,则a 85的地址为 。

A. 13B. 33C. 18D. 407.广义表运算式GetTail(((a,b),(c,d)))的操作结果是 。

哈工大2010年材料力学期末试题(A)卷答案

哈工大2010年材料力学期末试题(A)卷答案
A
OC X C X δ +?X ?δ= δ AC BC BC M = r ( ?cos θ) →δ = EI ∫
π r ( ?cos θ) r d θ=r EI ( π ? ) OC ?X =X r EA X =δr EI ( π ? )+r EA AB N B = X X
哈工大2010年材料力学期末试题(a)卷答案 a oc x c xδ +?x ?δ=δ ac bc bc m = r ( ?cosθ)→δ = ei∫ π r ( ?cosθ) r dθ=r ei (π ? ) oc ?x =x r ea x =δr ei (π ? )+r ea ab n b = x x bcde e n ab l +ql =wl =ql→n ab =ql n ce = ql bcd bc cd c m max =ql ( ) bcdσbcd max =m max s =ql a≤[σ]→q≤[σ]a l = . kn m ( )λp =π eσpl = . ab k = i = . d l = . mλab =kl i = . >λp ce k = . i =d l = . mλce =kl i = >λp ab ql [n ]st≤π ( . d )π eλ ab→q≤ . kn m ce ql [n ]st≤π dπ eλ ce →q≤ . kn m q max = . kn m w ab yaz xaz w ? bc t =w ? m =wx (x =[ , ]) d d ?d st = w ? ? ei + ?w ? ei + ?w ? jg =( + )w ei +w jg i =πd j =πd ?d st = . m k = + + h ?d st = . cb b ab ( )cb bσ= wπd ,τ= wπd σst r =√σ +τ =√ wπd = . mpa ( )abσz =wπd = . mpaσm =√ wπd = . mpaσst r =√σ +τ =(σz +σm )= . mpaσr =kσst r cb bσr = . mpa≈[σ]= mpa abσr = . mpa >[σ]= mpa d b x a m a =→b n b =w ( a ?x )?wa a . d m =wx ( a ?x ) a a ?wa b d a ,b d m =x ( a ?x ) a d eiv d =x ?m ? m + ( a ?x )?m ?( m ? wa ) m ,m eiv d =?(wx (a ?x )( a ?x )( a ? x )) ( a ) d d v d d x = d v d d x < ( v

数据结构试卷2009A答案


无序堆 ③
有序初始堆
SIFT(int i,int n,LIST A) {int j; records temp; temp=A[i];j=2*i; while (j<=n) {if ((j<n)&&(A[j].key<A[j+1].key)) j++; if(temp.key<A[j].key) {A[i]=A[j]; i=j;j=2*i; }else break; }A[i]=temp;} 或 void pushdown(int first,int last)//first 是需调整结点 {int r=first; while(r<=last/2) if((r==last/2&&(last%2==0)){ if(A[r].key>A[2*r].key) swap(A[r],A[2*r]); r=last; } else if((A[r].key)>A[2*r].key)&&(A[2*r].key<=A[2*r+1].key) swap(A[r],A[2*r]); r=2*r; } 9.某国有火车站若干个,每个车站有可容纳人数及可停火车数两 项指标。(本题 10 分) (1)写出图的存储结构(3 分) (2)在图中编写算法,计算该国火车点共能容纳多少人及总的可 停火车总数。 (7 分) (必须用 C 或 C++语言描述) 答:
int Width(Bitree T ){ //求树宽 int count[ ]; //增开 count 向量,存放各层对应的结点数 InitQueue(Q); //队列初始化,Q 的元素为 BTNRecord 类型 EnQueue(Q,{T, 0}); // 根 结 点 入 队 , 0 表 示 count[0] , 下 标 值 while(!QueueEmpty(Q)) { DeQueue(Q, r); //结点出队 count[yer]++; //出队时再把 结 点 对 应 层 的 计 数 器 加 if(r.node->lchild) EnQueue(Q,{r.node->lchild, yer+1}); if(r.node->rchild) EnQueue(Q,{r.node->rchild, yer+1}); } //按层序入队时要随时标注结点所在层号 h=yer; //最后一个队列元素所在层就是树的高度 for(maxn=count[0], i=1; h; i++) if(count[i]>maxn) maxn=count[i]; //求出哪一层结点数最多 return (h*maxn)} // Width 法二:若不用辅助数组,不用层数分量也可以,关键在于如何区别层与层。 有两种方法: 一、通过比较指针判断是否到达新的一层的开始; 二、通过比较指针判断是 否到达当前层的末尾. 由于方法一对新的一层的开始点不易确定,比较次数要多于第二种,因此 推荐第二种。 对任意种类的树都适用,二叉树类似可得。 算法如下: //-----------------------------------------------------------------------------------------// TreeWidth 求树的宽度 // 不用辅助数组,不用层数分量 // 思路: // 1.以两个整型变量存宽度,一个表示当前层的节点数,一个表示当前已 知最大宽度,当遍历完一层后立即判断两者大小,保留大者。 // 2.通过比较指针判断是否到达本层的末尾,以确定层与层间的关系。 教研室主任签字: 第 7 页 共 10 页
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档