哈工大2009年春季试卷-数据结构与算法-带答案

合集下载

2009年《数据结构》试卷A答案

2009年《数据结构》试卷A答案

西华大学课程考试参考答案(A卷)课程代码: 8401801 试卷总分: 100 分一、单项选择题参考答案及评分标准:(本大题共20个小题,每小题2分,共40分)评分标准:选对一题得2分,不选或选错得0分。

1-5:CBACC 6-10:CCBDB 11-15:ABCCD 16-20:CADDC二、算法理解题参考答案及评分标准:(本大题共3个小题,第1、2小题各7分,第3小题6分,共20分)评分标准:请根据各解答步骤酌情给分。

1. 解:构造过程各图(略),最后结果为:2. 解:设权w=(5,29,7,8,14,23,3,11),可构造一棵赫夫曼树如下图所示。

所得赫夫曼编码为:A: 0110B: 10C: 1110D: 1111E: 110F: 00G: 0111H: 0103. 解:(1)希尔排序第一趟(增量d=5)排序后 7、12、36、23、12、51、60、55、72、49第二趟(增量d=3)排序后 7、12、36、23、12、51、49、55、72、60第三趟(增量d=1)排序后 7、12、12、23、36、49、51、55、60、72(2)归并排序第一趟排序后 12、51、23、55、7、49、36、60、12、72第一趟排序后 12、23、51、55、7、36、49、60、12、72第三趟排序后 7、12、23、36、49、51、55、60、12、72第四趟排序后 7、12、12、23、36、49、51、55、60、72三、算法设计题参考答案及评分标准:(本大题共4个小题,每小题10分,共40分)评分标准:请根据编程情况酌情给分。

1. 参考答案示例:void DelInsert(LinkList &L){∥本算法将带头结点的非空单链表L中数据域值最小的那个结点移到链表的最前面。

p=L->next;∥p是链表的工作指针pre=L;∥pre指向链表中数据域最小值结点的前驱。

q=p;∥q指向数据域最小值结点,初始假定是首元结点while (p->next!=NULL){ if(p->next->data<q->data){ pre=p;q=p->next;} ∥找到新的最小值结点 p=p->next;}if (q!=L->next){ pre->next=q->next;∥将最小值结点从链表上摘下q->next= L->next;∥将q结点插到链表最前面L->next=q;}}//DelInsert2. 参考答案示例:void Count(BiTree T,int &n0,int &n){//统计二叉树T上叶结点数n0和非叶结点数n。

数据结构与算法复习题库含答案

数据结构与算法复习题库含答案

数据结构与算法复习题库含答案1. 问题描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

答案:可以使用哈希表来解决此问题。

首先初始化一个空的哈希表,然后遍历数组中的每个元素。

对于每个元素,首先计算目标值与当前元素的差值,然后在哈希表中查找该差值。

如果找到了该差值,则说明存在两个数的和等于目标值,返回这两个数的下标;否则,将当前元素插入到哈希表中。

时间复杂度为O(n),其中n为数组的长度。

2. 问题描述:给定一个字符串,找出其中不含重复字符的最长子串的长度。

答案:可以使用滑动窗口来解决此问题。

维护一个窗口,其中包含没有重复字符的子串。

遍历字符串中的每个字符,如果该字符不在窗口中,将其加入窗口;如果该字符在窗口中,移动窗口的左边界直到窗口中不包含重复字符。

记录窗口的最大长度。

时间复杂度为O(n),其中n为字符串的长度。

3. 问题描述:给定一个字符串和一个单词列表,找出字符串中可以由单词列表中的单词组成的所有子串的起始位置。

答案:可以使用滑动窗口和哈希表来解决此问题。

首先统计单词列表中每个单词的出现次数。

然后遍历字符串中的每个位置作为子串的起始位置,维护一个滑动窗口。

在窗口中依次取出长度和单词列表中单词总长度相等的子串,在哈希表中统计子串中每个单词出现的次数。

如果窗口中的子串与单词列表中的单词出现次数一致,则记录该子串的起始位置。

时间复杂度为O(n*m),其中n为字符串的长度,m为单词列表中的单词个数。

4. 问题描述:给定一个无序的整数数组,找出其中缺失的第一个正整数。

答案:可以使用原地哈希表来解决此问题。

遍历数组中的每个元素,将每个正整数放到数组中对应的位置上。

遍历数组中的每个元素,如果该位置上的数不等于数组索引加一,则该索引加一即为缺失的第一个正整数。

时间复杂度为O(n),其中n为数组的长度。

5. 问题描述:给定一个字符串s,找到s中最长的回文子串。

答案:可以使用动态规划来解决此问题。

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

哈尔滨工程大学数据结构历年试卷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)。

数据结构和算法习题及答案解析

数据结构和算法习题及答案解析

第1章绪论习题1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。

3.简述逻辑结构的四种基本关系并画出它们的关系图。

4.存储结构由哪两种基本的存储方法实现?5.选择题(1)在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.部结构和外部结构(2)与数据元素本身的形式、容、相对位置、个数无关的是数据的()。

A.存储结构B.存储实现C.逻辑结构D.运算实现(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。

A.数据具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等(4)以下说确的是()。

A.数据元素是数据的最小单位B.数据项是数据的基本单位C.数据结构是带有结构的各数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构(5)以下与数据的存储结构无关的术语是()。

A.顺序队列 B. 链表 C.有序表 D. 链栈(6)以下数据结构中,()是非线性数据结构A.树B.字符串C.队D.栈6.试分析下面各程序段的时间复杂度。

(1)x=90; y=100;while(y>0)if(x>100){x=x-10;y--;}else x++;(2)for (i=0; i<n; i++)for (j=0; j<m; j++)a[i][j]=0;(3)s=0;for i=0; i<n; i++)for(j=0; j<n; j++)s+=B[i][j];sum=s;(4)i=1;while(i<=n)i=i*3;(5)x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(6)x=n; //n>1y=0;while(x≥(y+1)* (y+1))y++;(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题(1)一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案(解答仅供参考)一、名词解释:1. 数据结构:数据结构是计算机存储、组织数据的方式,它不仅包括数据的逻辑结构(如线性结构、树形结构、图状结构等),还包括物理结构(如顺序存储、链式存储等)。

它是算法设计与分析的基础,对程序的效率和功能实现有直接影响。

2. 栈:栈是一种特殊的线性表,其操作遵循“后进先出”(Last In First Out, LIFO)原则。

在栈中,允许进行的操作主要有两种:压栈(Push),将元素添加到栈顶;弹栈(Pop),将栈顶元素移除。

3. 队列:队列是一种先进先出(First In First Out, FIFO)的数据结构,允许在其一端插入元素(称为入队),而在另一端删除元素(称为出队)。

常见的实现方式有顺序队列和循环队列。

4. 二叉排序树(又称二叉查找树):二叉排序树是一种二叉树,其每个节点的左子树中的所有节点的值都小于该节点的值,而右子树中的所有节点的值都大于该节点的值。

这种特性使得能在O(log n)的时间复杂度内完成搜索、插入和删除操作。

5. 图:图是一种非线性数据结构,由顶点(Vertex)和边(Edge)组成,用于表示对象之间的多种关系。

根据边是否有方向,可分为有向图和无向图;根据是否存在环路,又可分为有环图和无环图。

二、填空题:1. 在一个长度为n的顺序表中,插入一个新元素平均需要移动______个元素。

答案:(n/2)2. 哈希表利用______函数来确定元素的存储位置,通过解决哈希冲突以达到快速查找的目的。

答案:哈希(Hash)3. ______是最小生成树的一种算法,采用贪心策略,每次都选择当前未加入生成树且连接两个未连通集合的最小权重边。

答案:Prim算法4. 在深度优先搜索(DFS)过程中,使用______数据结构来记录已经被访问过的顶点,防止重复访问。

答案:栈或标记数组5. 快速排序算法在最坏情况下的时间复杂度为______。

真题_2009年_数据结构--硕士生入学考试

真题_2009年_数据结构--硕士生入学考试

8.下列叙述中不符合m阶B树定义要求的是( ) A. 根结点最多有m棵子树 B. 所有叶结点都在同一层上 C. 各结点内关键字均升序或降序排列 D. 叶结点之间通过指针链接
参考答案:D
9.已知关键字序列5,8,12,19,28,20,15, 22是小根堆(最小堆),插入关键字3,调整后 得到的小根堆是( ) A. 3,5,12,8,28,20,15,22,19 B. 3,5,12,19,20,15,22,8,28 C. 3,8,12,5,20,15,22,28,19 D. 3,12,5,8,28,20,15,22,19
2009年全国硕士研究生入学统一考 试计算机学科专业基础综合试卷
数据结构部分
一、单项选择题:1~40小题。每小题2分,共80分。 在每小题给出的四个选项中,请选出一项最符合题 目要求的。
1.为解决计算机主机与打印机之间速度不匹配问题,通常设 置一个打印数据缓冲区,主机将要输出的数据依次写入该 缓冲区,而打印机则依次从该缓冲区取出数据。该缓冲区 的逻辑结构应该是( ) A. 栈 B. 队列 C. 树 D. 图
参考答案:C
6.将森林转换为对应的二叉树,若在二叉树中,结 点u是结点v的父结点的父结点,则在原来的森 林中,u和v可能具有的关系是( ) 1. 父子关系 2. 兄弟关系 3. u的父结点与v的父结点是兄弟关系
A. B. C. D.
只有2 1和2 1和3 1、2和3
参考答案:B
7.下列关于无向连通图特性的叙述中,正确的是( ) 1. 所有顶点的度数之和为偶数 2. 边数大于顶点个数减1 3. 至少有一个顶点的度为1 A. B. C. D. 只有1 只有2 1和2 1和3 参考答案:A
41、答案要点 (1)该方法不一定能(或不能)求得最短路径 (2)反例(略)

哈工大2009春季数字通信考试题及答案

哈工大2009春季数字通信考试题及答案

2009春季数字通信试题及答案Question One: Determine a set of orthonormal functions for the four signals shown below: (20%)1(s t2(t (t t 22-Here give the details of the derivation1.Answer:2-22-2Question Two: (20%)Determine the probability error for the signals shown below, then give the bit error probability and symbol error probability of QPSK.122. Answer:Let us assume that the two signals are equally likely and that signal 1()s t wastransmitted.Then, the received signal from the (matched filter or correlation) demodulator is1r s nn =+=where n represents the additive Gaussian noise component, which has zero mean and variance 2012n N σ=. If 0r >, the decision is made in favor of 1()s t , and if 0r <, the decision is made that 2()s t was transmitted. Clearly, the two conditional PDFs of r are20(/1(/2(|)(|)r N r N p r s p r s --==2211/2/2(|)(|)exp[xxP e s p r s drdrdxdxQ-∞-∞--∞∞-=====⎰22/221/2(x NxP n n dxdxQ∞-∞-->===Question Three: (15%)Considering 4M=biorthogonal signals shown in below for transmitting information over anAWGN channel. The noise is assumed to have zero-mean and power spectral density12N. Determine the basis functions for this signal set, the impulse responses of the matched-filter demodulators, and the output waveforms of the matched-filter demodulators when the transmittedsignal is4()s t.AA-3. Answer:The impulse responses of the two matched filters are11221()()()20 ()1)()()20 ()T t Th t f T totherwiset Th t f T totherwise≤≤=-=⎪⎩≤≤=-=⎪⎩()()(),1,2Tkn ky T n t f t dt k==⎰2200002000[()][()()]()()1()()()211()22TTn kn k k T T k k T k E y T E n t n f t f dtd N t f t f dtd N f t dt N στττδτττ===-==⎰⎰⎰⎰⎰Observe that the 0SNRfor the first matched filter is0002SNR 2N N ε==12121212(,),),(),(,)r r n n n n n n =and 12(,)n n .Question Four: (15%)Complex-valued cross-correlation coefficient of any pair of signal waveforms ()m s t and()k s t is defined as()()km lm lk s t s t dt ρ+∞*-∞=Where ε is the energy of ()s t , and ()l s t is the bandpass representation of the ()s t (1) Do you know where the coefficient 1/2 in km ρcome from? (2) (2)Can it be defined as ()()km lm lk s t s t dt ρ+∞*-∞=?4. Answer:(1)22Re()Re()c c j f t j f t m k lm lk S S dt S e S e dt ππ∞∞-∞-∞=⋅⋅⎰⎰441()4c c j f t j f t lm lk lm lk lm lk lm lk S S e S S S S S S e dt ππ∞-****-∞=+++⎰ 1Re()2lm lk S S dt ∞*-∞=⎰ (3) YesQuestion Five: (20%)Let X be Gaussian distributed with zero mean and variance σ2, consider the random variable Y defined as2Y X =Determine (the details of the derivation are needed): (1) PDF of Y (2) CDF of Y(3) The characteristic function of Y5. Answer:2=Y Xso the probability distribution function of Y is2()()()(||)()()Y X X F y P Y y P X y P X y F y F y =≤=≤=≤=--and the probability density function of Y is[][]()22X X Y p y p y p y a ya y-=+Question Six: (20%)Your own explanation for the figure below, which is the comparison of several modulation methods at 10-5 symbol error probability6. Answer:There are no standard answers. Students should give answers according to their knowledge and experience.。

哈尔滨工业大学机试真题

哈尔滨工业大学机试真题

1045: 百鸡问题时间限制: 1 Sec 内存限制: 32 MB提交: 362 解决: 139题目描述用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。

编程求解x,y,z所有可能解。

输入测试数据有多组,输入n。

输出对于每组输入,请输出x,y,z所有可行解,按照x,y,z依次增大的顺序输出。

样例输入40样例输出x=0,y=0,z=100x=0,y=1,z=99x=0,y=2,z=98x=1,y=0,z=992009年哈尔滨工业大学计算机研究生机试真题1046: 求最大值时间限制: 1 Sec 内存限制: 32 MB提交: 400 解决: 168题目描述输入10个数,要求输出其中的最大值。

输入测试数据有多组,每组10个数。

输出对于每组输入,请输出其最大值(有回车)。

样例输入10 22 23 152 65 79 85 96 32 1样例输出max=1522009年哈尔滨工业大学计算机研究生机试真题1047: 素数判定时间限制: 1 Sec 内存限制: 32 MB提交: 301 解决: 154题目描述给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。

输入测试数据有多组,每组输入一个数n。

输出对于每组输入,若是素数则输出yes,否则输入no。

样例输入13样例输出1048: 判断三角形类型时间限制: 1 Sec 内存限制: 32 MB提交: 248 解决: 130题目描述给定三角形的三条边,a,b,c。

判断该三角形类型。

输入测试数据有多组,每组输入三角形的三条边。

输出对于每组输入,输出直角三角形、锐角三角形、或是钝角三角形。

样例输入3 4 5样例输出直角三角形2009年哈尔滨工业大学计算机研究生机试真题1049: 字符串去特定字符时间限制: 1 Sec 内存限制: 32 MB提交: 250 解决: 121题目描述输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。

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

哈工大2009年春季学期数据结构与算法 试卷一、填空题(每空2分,共20分)1. 在 情况下,等长编码是最优前缀码。

2.设有两个算法在同一机器上运行,其执行时间分别为100n 2和2n ,要使前者快于后者,n 至少为 。

3.采用堆排序、快速排序、冒泡排序,对初态有序的表,最省时间的是_ 。

4. 设二叉树结点的先根序列为ABDECFGH ,中根序列为DEBAFCHG,则二叉树中叶结点是_________.5. 用下标从0开始的N 个元素的数组实现循环队列时,为实现下标变量m 加1后在数组有效下标范围内循环,可采用的表达式是m= 。

6. 由带权为3,9,4,2,5的5个叶子结点构成一棵哈夫曼树,则带权路径长度为 。

7. 对n 个记录的表进行选择排序,在最坏情况下所需要进行的关键字的比较次数为 。

8. 任意一个有n 个结点的二叉树,已知它有m 个叶结点,则度数为2的结点有 。

9. n 个顶点的连通图用邻接矩阵表示时,该矩阵至少有 个非零元素10. 举出两种磁带文件的分类方法: 。

二、选择题(每题1分,共10分)注意行为规范遵守考场纪律1.设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为基准而得到一趟快速排序的结果是( )。

(A) 40,42,45,55,80,83(B) 42,40,45,80,85,88(C) 42,40,55,80,45,85(D) 42,40,45,85,55,802.数据的最小单位是( )。

(A) 数据项(B) 数据类型(C) 数据元素 (D) 数据变量3.关键路径是AOE网中( ) 。

A.从始点到终点的最短路径B.从始点到终点的最长路径C.从始点到终点的边数最多的路径D.从始点到终点的边数最少的路径4.下列说法正确的是()。

A.最小生成树也是哈夫曼树B.最小生成树是唯一的C.对于n 个顶点的连通无向图,Prim算法的时间复杂性为O(n2)D.Kruskal 算法比Prim算法更适合边稠密的图5.设栈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的长度最少为( )。

(A) 100 (B) 40(C) 55 (D) 807.若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序结果,则该排序算法只能是( )。

A. 插入排序B.冒泡排序C. 选择排序D. 二路归并排序8.设哈希表长m=14,哈希函数H(key)=key%11。

表中已有4个结点:addr(15)=4,addr(38)=5 , addr(61)=6 , addr(84)=7 其余地址为空。

如果用二次探测再散列处理冲突,关键字为49的结点的地址是()A.8 B .3 C. 5 D. 99. 有组记录的输入顺序为(46,79,56,38,40,84),则利用堆排序方法建立的初始堆为( )A.79,46,56,38,40,80 B .38,40,56,79,46,84C. 84,79,56,46,40,38D. 84,56,79,40,46,3810. 下列叙述中,不符合m阶B树定义要求的是()A. 根结点最多有m棵子树B. 所有叶结点都在同一层上C.各结点内的关键字有序 D. 叶结点之间通过指针链接三、简答题(10分). 带权图(权值非负,表示边连接的两个顶点的距离)的最短路径问题是找出初始顶点到目标顶点之间的一条最短路径。

假设从初始顶点到目标顶点之间的存在路径,现有一种解决该问题的方法:1)设最短路径初始时仅包含初始顶点,令当前顶点u为初始顶点;2)选择离u最近的且尚未在最短路径中的一个顶点v,加入到最短路径中,修改当前顶点u=v;3) 重复步骤2),直到u是目标顶点为止。

请问上述方法能否求得最短路径?若可行请证明之;否则,请举例说明。

四、算法设计:栈、队列的存储结构、基本操作可以直接引用(共30分)1.设二叉树采用左右链方式存储,设计一个判断二叉树是否是二叉排序树的算法。

(10分)2.设有一个双链表,每个结点中除有prior、data和next三个域外,还有一个访问频度域freq,在链表被起用之前,其值均初始化为零。

每当在链表进行一次LocateNode(L,x)运算时,令元素值为x的结点中freq域的值加1,并调整表中结点的次序,使其按访问频度的递减序排列,以便使频繁访问的结点总是靠近表头。

试写出符合上述要求的LocateNode运算的算法。

(10分)3.给定一个无向连通图,写一个算法找出半径最小的生成树(搜索起点作为生成树的根,树的半径定义为从根到叶子的最大距离)。

(10分){if(t!=null && *flag){Judgebst(t->lchild,&flag);∥ 中序遍历左子树if(pre==null)pre=t;∥中序遍历的第一个结点不必判断else if(pre->data<t->data) pre=t;∥前驱指针指向当前结点else{*flag=false;} ∥不是完全二叉树Judgebst(t->rchild,&flag);∥中序遍历右子树}∥if }∥JudgeBST算法结束本题的另一算法是按定义,二叉排序树的左、右子树都是二叉排序树,根结点的值大于左子树中所有结点的值而小于右子树中所有结点的值,即根结点大于左子树的最大值而小于右子树的最小值。

算法如下:int JudgeBST(BST ree t)∥判断二叉树t是否是二叉排序树,若是,返回true,否则,返回false{if(t==null) return true;if(Judgebst(t->lchild)&& Judgebst(t->rchild))∥左右子树均为二叉排序树 {m=max(t->lchild);n=min(t->rchild);∥左子树中最大值和右子树中最小值return(t->data>m && t->data<n);}∥ifelse return false;∥不是二叉排序树}∥结束judgebstint max(BST ree p) ∥求二叉树左子树的最大值{if(p==null)return maxint;∥返回机器最小整数else{while(p->rchild) p=p->rchild;return p->data;}∥while }∥endint min(BST ree p) ∥求二叉树右子树的最小值{if(p==null) return maxint;∥返回机器最大整数else{while(p->lchild) p=p->lchild;return p->data;}∥while }∥end2.DList locate(DList L,ElemT ype x)∥ L是带头结点的按访问频度递减的双向链表∥本算法先查找数据x,查找成功时结点的访问频度域增1,最后将该结点按频度递减插入链表中{ DList p=L->next,q; ∥p为L表的工作指针,q为p的前驱,用于查找插入位置while(p && p->data !=x) p=p->next; ∥ 查找值为x的结点if(!p) {printf(“不存在所查结点\n”); exit(0);}else { p->freq++; ∥ 令元素值为x的结点的freq域加1p->next->pred=p->pred; ∥ 将p结点从链表上摘下p->pred->next=p->next;q=p->pred; ∥ 以下查找p结点的插入位置while(q !=L && q->freq<p->freq) q=q->pred;p->next=q->next; q->next->pred=p;∥ 将p结点插入p->pred=q; q->next=p;}return(p); ∥返回值为x的结点的指针} ∥ 算法结束3. 采用广度优先遍历,其邻接点均已遍历的结点是叶子结点,记下结点的半径(以分枝个数记)int MiniRadius(AdjList g,int v)∥图g以邻接表形式存储,求半径最小的生成树。

设顶点信息就是编号,从顶点v开始遍历{typedef struct{int v, level; }node; ∥队列元素int MAX=100; ∥设最大层次数int visited[MAX]=0; ∥访问数组node R,Q[]; ∥Q为队列,容量足够大R.v=v; R.level=1;Makenullt(Q); EnQueue(Q,R);while(!Empty(Q){R=DeQueue(Q); ∥出队v=R.v; l=R.level; p=g[v].firsteage; flag=0; ∥flag是顶点是否是叶子的标记while(p){w=p->adjvex;if(visited[w]==0) {flag=1; R.level=l+1; EnQueue(Q,R); }p=p->next;}if(flag==0) ∥其邻接点均已遍历的顶点是叶子结点{if(l<MAX) MAX=l; }}return MAX;}。

相关文档
最新文档