数据结构考研试卷 (10)

合集下载

数据结构考研真题和答案

数据结构考研真题和答案

数据结构考研真题和答案数据结构是计算机科学中的重要基础课程,对于计算机专业的学生而言,掌握好数据结构非常关键。

考研阶段,数据结构也是一个必考科目。

本文将介绍一些常见的数据结构考研真题以及详细的答案解析,希望能帮助同学们更好地备考。

1. 简述线性表的定义,举例说明线性表的应用场景。

线性表是数据结构中最基本的一种结构,它是由相同数据类型的有限个数据元素组成的序列。

线性表的特点是存储结构唯一,数据元素之间是一对一的关系。

在实际应用中,线性表常用来表示一组某种类型的数据集合,例如存储学生的学号信息、存储职工的工号信息等。

2. 解释栈的特点及其应用场景。

栈是一种特殊的线性表,它的特点是只能在表的一端进行插入和删除操作,表的另一端称为栈顶。

栈的插入操作称为入栈,删除操作称为出栈。

栈的特点是后进先出(LIFO),即最后插入的元素最先被删除。

栈在实际应用中有很多场景,例如函数调用栈、表达式求值、撤销操作等。

3. 什么是队列?请给出队列的一个实际应用案例。

队列也是一种特殊的线性表,它的特点是只允许在表的一端进行插入操作,而在另一端进行删除操作。

队列的插入操作称为入队,删除操作称为出队。

队列的特点是先进先出(FIFO),即最先插入的元素最先被删除。

队列在实际应用中有很多场景,例如排队、任务调度、消息队列等。

4. 什么是树结构?请简要介绍树结构的一些应用。

树是一种非线性的数据结构,它由n(n>=1)个有限节点组成一个具有层次关系的集合。

树的特点是一个节点可以有多个子节点,但是只能有一个父节点,除根节点外,每个节点可以有多个子节点。

树结构在实际应用中广泛存在,例如文件系统、组织结构、网络拓扑等。

5. 解释二叉树的定义,并给出一种常见的二叉树结构。

二叉树是一种特殊的树结构,它的每个节点最多有两个子节点,分别称为左子节点和右子节点。

二叉树的定义为一个有限的节点集合,该集合可以为空,如果非空则必须满足:(1)有且仅有一个称为根的节点;(2)该节点的左子树和右子树也是二叉树。

数据结构的考研题库及答案

数据结构的考研题库及答案

数据结构的考研题库及答案数据结构是计算机科学中非常重要的一门学科,它研究的是如何组织和管理数据以及数据之间的关系。

对于考研学生来说,数据结构是一个必考的科目,因此熟悉考研题库及答案对于备考非常重要。

一、数据结构的考研题库数据结构的考研题库通常包含选择题和填空题两种类型。

选择题是通过给定的选项选择正确答案,而填空题则需要考生填写正确的答案。

在选择题中,常见的考点包括线性表、栈和队列、树和二叉树、图等。

例如,考生可能会遇到如下题目:下列关于栈的说法中,错误的是(A)栈是一种先进后出的数据结构(B)栈的插入操作称为入栈(C)栈的删除操作称为出栈(D)栈的插入和删除操作都在栈顶进行。

正确答案是(A)栈是一种先进后出的数据结构。

填空题则更加注重对知识点的理解和应用。

例如,考生可能会遇到如下题目:设有一个长度为n的线性表L,其中元素按非递增顺序排列。

设计一个算法,删除线性表中所有值相同的元素,要求时间复杂度为O(n)。

正确答案是:从前向后扫描线性表,用一个变量count记录不同元素的个数,然后将不同的元素依次放到线性表的前count个位置。

二、数据结构的考研答案对于考生来说,除了了解考研题库外,掌握正确的答案也是备考的重要一环。

在选择题中,正确答案通常是通过对题目进行分析和推理得出的。

考生需要仔细阅读题目,理解题意,然后根据自己对知识点的掌握程度选择正确答案。

在填空题中,考生需要根据题目要求,运用所学的知识点进行分析和解答。

对于一些较难的填空题,考生可以通过构造示例或者推导过程来得到答案。

除了了解答案外,考生还需要掌握解题的方法和技巧。

对于选择题,考生可以通过排除法和对选项进行比较来确定正确答案。

对于填空题,考生可以根据题目给出的条件和要求,运用相应的算法和数据结构进行求解。

三、备考数据结构的建议备考数据结构,考生需要系统地学习相关的知识点,并进行大量的练习和总结。

以下是一些建议:1. 系统学习:根据教材或者相关资料,系统地学习数据结构的基本概念、常见算法和数据结构的实现方法等。

数据结构考研真题及其答案完整版

数据结构考研真题及其答案完整版

数据结构考研真题及其答案完整版数据结构是计算机科学与技术领域中的一门重要课程,也是计算机考研中必考的一门科目。

通过研究数据结构,可以帮助我们更好地理解和应用计算机算法,提高计算机程序的效率和性能。

为了帮助考生更好地备考数据结构,本文将分享一些数据结构考研真题及其答案,供考生参考。

一、选择题1. 下列关于栈的叙述中,错误的是()A. 栈是一种线性数据结构,具有后进先出(LIFO)的特点B. 栈可以用数组实现,也可以用链表实现C. 栈的插入和删除操作都是在同一端进行的D. 栈的插入和删除操作的时间复杂度都是O(1)答案:C解析:栈的插入操作叫做入栈,删除操作叫做出栈。

入栈和出栈操作都是在栈顶进行的,而不是同一端。

2. 假设要对n个整数关键字进行排序,以下排序算法中,平均时间复杂度最小的是()A. 冒泡排序B. 快速排序C. 归并排序D. 直接插入排序答案:C解析:归并排序的时间复杂度是O(nlogn),平均时间复杂度最小。

二、填空题1. 下列关于图的遍历顺序的说法中,正确的是:深度优先搜索访问的顺序是________,广度优先搜索访问的顺序是________。

答案:前序遍历,层次遍历解析:深度优先搜索即前序遍历,广度优先搜索即层次遍历。

2. 给定一个最小堆,若删除堆顶元素后,需要对堆进行调整,所采用的操作是________。

答案:下滤解析:删除堆顶元素后,将最后一个叶子节点放到堆顶,然后进行下滤操作。

三、简答题1. 请简要说明动态规划算法的基本思想和应用场景。

答:动态规划算法的基本思想是将问题分解为多个子问题,通过求解子问题的最优解来得到原问题的最优解。

它通常适用于具有重叠子问题和最优子结构性质的问题。

动态规划算法可以大大减少问题的重复计算,提高算法的效率和性能。

它在求解最短路径、最长公共子序列、背包问题等具有广泛的应用。

2. 请简要介绍红黑树的特点和应用场景。

答:红黑树是一种自平衡的二叉查找树,它具有以下特点:1) 每个节点都有一个颜色,红色或黑色;2) 根节点是黑色的;3) 叶子节点(NIL节点)都是黑色的;4) 如果一个节点是红色的,则它的两个子节点都是黑色的;5) 从根节点到叶子节点的路径上,不同路径上黑节点的个数相同。

严蔚敏《数据结构》(第2版)笔记和习题(含考研真题)详解

严蔚敏《数据结构》(第2版)笔记和习题(含考研真题)详解

目录分析
1.2强化习题详解
1.1复习笔记
1.3考研真题与典 型题详解
2.2强化习题详解
2.1复习笔记
2.3考研真题与典 型题详解
3.2强化习题详解
3.1复习笔记
3.3考研真题与典 型题详解
Hale Waihona Puke 4.2强化习题详解4.1复习笔记
4.3考研真题与典 型题详解
5.2强化习题详解
5.1复习笔记
5.3考研真题与典 型题详解
严蔚敏《数据结构》(第2版)笔 记和习题(含考研真题)详解
读书笔记模板
01 思维导图
03 目录分析 05 读书笔记
目录
02 内容摘要 04 作者介绍 06 精彩摘录
思维导图
关键字分析思维导图
习题
数据结构
笔记
名校
复习
重难点
第章
笔记
教材
真题 真题
存储管理
第版
典型
二叉树
习题 题
树 动态
内容摘要
严蔚敏所著的《数据结构》(第2版,清华大学出版社)是我国高校采用较多的计算机专业优秀教材,也被众 多高校指定为计算机专业考研参考书目。作为该教材的辅导书,本书具有以下几个方面的特点:1.整理名校笔记, 浓缩内容精华。在参考了国内外名校名师讲授严蔚敏《数据结构》的课堂笔记基础上,本书每章的复习笔记部分 对该章的重难点进行了整理,同时对重要知识点进行点拨,因此,本书的内容几乎浓缩了配套教材的知识精华。 2.归纳典型题,强化知识考点。为了进一步巩固和强化各章知识难点的复习,特针对该教材的重难点相应整理了 典型强化习题,并对相关知识点进行归纳和延伸,梳理知识点逻辑关系,以达到高效复习的目的。3.精选考研真 题,巩固重难点知识。为了强化对重要知识点的理解,本书精选了部分名校近几年的数据结构考研真题,这些高 校大部分以该教材作为考研参考书目。所选考研真题基本涵盖了各个章节的考点和难点,特别注重联系实际,凸 显当前热点。要深深牢记:考研不同一般考试,概念题(名词解释)要当作简答题来回答,简答题要当作论述题 来解答,而论述题的答案要像是论文,多答不扣分。有的论述题的答案简直就是一份优秀的论文(其实很多考研 真题就是选自一篇专题论文),完全需要当作论文来回答!

数据结构考研试题精选及答案第10章排序

数据结构考研试题精选及答案第10章排序

第10章 排序排序排序一、选择题 1.某内排序方法的稳定性是指.某内排序方法的稳定性是指( )( )( )。

【南京理工大学【南京理工大学 1997 1997 1997 一、一、一、101010((2分)】 A .该排序算法不允许有相同的关键字记录该排序算法不允许有相同的关键字记录 B B B..该排序算法允许有相同的关键字记录记录C .平均时间为0(n log n n log n)的排序方法)的排序方法)的排序方法D D D.以上都不对.以上都不对.以上都不对2.下面给出的四种排序法中下面给出的四种排序法中( )( )( )排序法是不稳定性排序法。

排序法是不稳定性排序法。

【北京航空航天大学北京航空航天大学 1999 1999 1999 一、一、10 10 ((2分)】 A. A. 插入插入插入 B. B. B. 冒泡冒泡冒泡 C. C. C. 二路归并二路归并二路归并 D. D. D. 堆积堆积堆积 3.下列排序算法中,其中(.下列排序算法中,其中( )是稳定的。

)是稳定的。

)是稳定的。

【福州大学【福州大学 1998 1998 1998 一、一、一、3 (23 (2分)】A. A. 堆排序,冒泡排序堆排序,冒泡排序堆排序,冒泡排序B. B. B. 快速排序,堆排序快速排序,堆排序快速排序,堆排序C. C. 直接选择排序,归并排序直接选择排序,归并排序直接选择排序,归并排序D. D. D. 归并排序,冒泡排序归并排序,冒泡排序归并排序,冒泡排序4.稳定的排序方法是(.稳定的排序方法是( )) 【北方交通大学【北方交通大学【北方交通大学 2000 2000 2000 二、二、二、33(2分)】 A .直接插入排序和快速排序.直接插入排序和快速排序 B B B.折半插入排序和起泡排序.折半插入排序和起泡排序.折半插入排序和起泡排序C .简单选择排序和四路归并排序.简单选择排序和四路归并排序D D D.树形选择排序和.树形选择排序和shell 排序排序5.下列排序方法中,哪一个是稳定的排序方法?(.下列排序方法中,哪一个是稳定的排序方法?( ) 【北方交通大学【北方交通大学【北方交通大学 2001 2001 2001 一、一、一、88(2分)】A .直接选择排序.直接选择排序B B B.二分法插入排序.二分法插入排序.二分法插入排序C C C.希尔排序.希尔排序.希尔排序D D D.快速排序.快速排序.快速排序6.若要求尽可能快地对序列进行稳定的排序,则应选(.若要求尽可能快地对序列进行稳定的排序,则应选(A A .快速排序.快速排序 B B B.归并排序.归并排序.归并排序 C C C.冒.冒泡排序)。

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区 数据结

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区  数据结

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区数据结结考研真题及其答案据结构是计算机科学中重要的一门课程,它研究的是如何组织和管理数据的方式。

对于计算机专业的研究生来说,数据结构是必修课程,考研真题的复习和备考对于学生来说是非常重要的。

在本文中,我们将介绍一些数据结构考研真题及其答案,帮助学生更好地复习和备考。

第一题:给出以下数据结构中各个操作的时间复杂度:数组、链表、堆、栈、队列。

答案:数组的插入和删除操作的时间复杂度为O(n),查找操作的时间复杂度为O(1);链表的插入和删除操作的时间复杂度为O(1),查找操作的时间复杂度为O(n);堆的插入、删除和查找操作的时间复杂度都为O(logn);栈的插入、删除和查找操作的时间复杂度都为O(1);队列的插入、删除和查找操作的时间复杂度都为O(1)。

第二题:给出以下数据结构的特点:栈、队列、堆、二叉树、图。

答案:栈是一种后进先出(LIFO)的数据结构,只能在一端进行插入和删除操作;队列是一种先进先出(FIFO)的数据结构,插入操作在一端进行,删除操作在另一端进行;堆是一种完全二叉树,具有父节点的值大于等于子节点的值(大顶堆)或父节点的值小于等于子节点的值(小顶堆)的性质;二叉树是一种每个节点最多有两个子节点的树;图是由节点和连接节点的边组成的数据结构。

第三题:给定一个有序数组,要求在其中查找一个元素的位置并返回,如果找不到则返回-1,设计一个算法实现上述功能。

答案:可以使用二分查找算法来实现上述功能。

首先,将要查找的元素与有序数组的中间元素进行比较,如果相等,则返回中间元素的位置;如果要查找的元素小于中间元素,则在数组的前半部分继续进行二分查找;如果要查找的元素大于中间元素,则在数组的后半部分继续进行二分查找。

重复这个过程,直到找到要查找的元素或者确定元素不存在为止。

第四题:给出以下排序算法的时间复杂度:冒泡排序、插入排序、选择排序、快速排序、归并排序。

《数据结构》历年考研真题及解答

《数据结构》历年考研真题及解答

《数据结构》考研真题及解答目录2009 年试题 (1)填空题 (1)解答题 (2)2010 年试题 (2)填空题 (2)解答题 (4)2011 年试题 (4)填空题 (4)解答题 (5)2012 年试题 (6)填空题 (6)解答题 (7)2013 年试题 (8)填空题 (8)解答题 (9)2014 年试题 (10)填空题 (10)解答题 (11)2015 年试题 (12)填空题 (12)解答题 (14)2009 年试题填空题1.为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区的逻辑结构应该是A.栈B.队列C.树D.图2.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S。

若每个元素出栈后立即进入队列 Q,且7 个元素出队的顺序是 bdcfeag,则栈 S 的容量至少是A.1 B.2 C.3 D.43.给定二叉树图所示。

设 N 代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。

若遍历后的结点序列为 3,1,7,5,6,2,4,则其遍历方式是A.LRN B.NRL C.RLN D.RNL4.下列二叉排序树中,满足平衡二叉树定义的是5.已知一棵完全二叉树的第 6 层(设根为第 1 层)有8 个叶结点,则完全二叉树的结点个数最多是A.39 B.52 C.111 D.1196.将森林转换为对应的二叉树,若在二叉树中,结点u 是结点v 的父结点的父结点,则在原来的森林中,u 和v 可能具有的关系是I.父子关系II.兄弟关系III.u 的父结点与v 的父结点是兄弟关系A.只有IIB.I 和IIC.I 和IIID.I、II 和III7.下列关于无向连通图特性的叙述中,正确的是I.所有顶点的度之和为偶数II.边数大于顶点个数减1 III.至少有一个顶点的度为1A.只有IB.只有IIC.I 和IID.I 和III8.下列叙述中,不符合 m 阶B 树定义要求的是A.根节点最多有m 棵子树 B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接9.已知关键序列 5,8,12,19,28,20,15,22 是小根堆(最小堆),插入关键字 3,调整后得到的小根堆是A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,1910.若数据元素序列 11,12,13,7,8,9,23,4,5 是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是A.起泡排序 B.插入排序 C.选择排序 D.二路归并排序解答题41.(10 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。

数据结构10年考研试题及答案(整理)

数据结构10年考研试题及答案(整理)

数据结构考试重点及部分答案自己做的答案不是很正确如果有问题请联系后面的大题不知道原题,所以不知道怎么做见谅!!!题型和分值选择题:15*2=30填空题:10*2=20解答题:5*4=20算法阅读题:5*4=20算法设计题:101 栈的进栈、出栈函数顺序,求一个表达式的顺序eg:进栈顺序是123 计算POP(S)+2 POP(S) =3+2*2=72 给定二叉排序树的数据求平均查找长度Eg:已知长度为9的表{16 ,3 ,7 ,11 ,9 ,26,18,14,15},建立二叉顺序树后进行查找,则等概率的情况下查找成功的平均查找长度为()二叉排序树(Binary Sort Tree)又称二叉查找树。

它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;根据上述性质,按照给出的表,建立的树如下图:(旁边的数表示查找长度)平均查找长度为:(1+2+2+3+3+4+5+5+6)/9 = 31/93树的概念树是n(n>=0)个结点的有限集4 二重循环的平均时间复杂度的求解(使用嵌套、统计次数)时间复杂度:该算法的运行时间与问题规模的对应关系,时间复杂度用T(n)=O(f(n))来表示Eg:S=0for(i=1;i<=n;i++)for(j=1;j<=m;j++)s=s+1答案为0(n*m)求解算法复杂度时:1、首先确定核心操作。

很显然此算法中,核心的操作是s=s+1;2.这个算法中,存在两重循环。

第一重循环n次,第二重循环m次,总共执行核心操作n*m次。

3.确定此算法的时间复杂度为:O (n*m)若复杂度为 O (n*n),则算法可以是如下的样子:S=0for(i=1;i<=n;i++)for(j=1;j<=n;j++)s=s+15 单链表中R是P的前驱,在P Q之间插入S,则则如何插入(语句表示)在相邻元素R、P之间插入一个值为X的数据元素的基本操作步骤:(1)生成一个数据域值为X的结点S(2)使X结点的指针域指向结点P:S->next=P->next(3)修改R结点的指针域指向结点X:P->next=S6 已知顺序表,求查找X的平均查找长度(n+1)/27栈的插入和删除的位置栈顶8 已知入队序列求出队序列原则:先进先出9 在图中,所有度数和等于边的几倍两倍10 邻接矩阵中行和列分别表示什么意思无向图邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的度。

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

附录 B 三份数据结构考研试题及参考
答案
试题一(满分75)
一、单项选择题(2×10分,共20分)
1.某算法的时间复杂度为O(n2),表明该算法的_.
A.问题规模是n2
B.执行时间等于n2
C.执行时间与n2成正比
D.问题规模与n2成正比
2.设线性表有n个元素,以下操作中,_在顺序表上实现比在链表上实现效率更高.
A.输出第i(1≤i≤n)个元素值
B.交换第1个元素与第2个元素的值
C.顺序输出这n个元素的值
D.输出与给定值x相等的元素在线性表中的序号
3.设n个元素进栈序列是1,2,3,…,n,其输出序列是p1,p2,…p n,若p1=3,则p2的值_.
A.一定是2
B.一定是1
C.不可能是1
D.以上都不对
4.设循环队列中数组的下标是0~N-1,其头尾指针分别为f(指向队头元素的前一位置)和r(指向队尾元素的位置),则其元素个数为_.
A.r-f
B.r-f-1
C.(r-f)%N+1
D.(r-f+N)%N
5.若串s=’abcefgh’,其子串(含空串和自身)的个数是_.
A.8
B.37
C.36
D.9
6.若将n阶上三角矩阵A按列优先顺序压缩存放在一维数组B[1..n(n+1)/2]中,第一个非零元素a11存放于B[1]中,则应存放到B[k]中的非零元素a ij(1≤i≤n;1≤j≤i)的下标i,j 与k的对应关系是k=( )。

A.i(i+1)/2+j
B. i(i-1)/2+j-1
C. j(j+1)/2+I
D. j(j-1)/2+i-1
7. 设高度为h(根结点为第1层)的二叉树上只有度为0和度为2的结点,则此类二叉
树中所包含的结点数至少为( ).
A. 2h
B.2h-1
C.2h+1
D.h+1 8. 无向图的邻接矩阵是一个( )。

A. 对称矩阵 B.零矩阵 C.上三角矩阵 D.对角矩阵 9. 对线性表进行二分查找时,要求线性表必须( )。

A. 以顺序表方式存储 B. 以链接方式存储
C. 以顺序方式存储,且结点按关键字有序排序
D. 以链式方式存储,且结点按关键字有序排序 10. 以下排序算法中,( )不能保证每趟排序至少能将一个元素放到其最终位置上。

A. 快速排序
B.希尔排序
C.堆排序
D.冒泡排序
二、问答题(共30分)
1. 有5个字符,根据其使用频率设计对应的哈弗曼编码,以下哪些可能的哈弗曼编码。

(8分)
(1)000,001,010,011,1 (2)0000,0001,001,01,1 (3)000,001,01,10,11 (4)00,100,101,110,111
2. 一个有向图G 的邻接表存储如图B.1所示,现按深度优先搜索遍历,从顶点1出发,所得到的顶点时什么?(5分)
v1 v2 v3 v4 ∧ v5
3. 已知一个有序表为(12,18,20,25,29,32,40,62,83,90,95,98),当二分查找值为29和90时,分别需要多少次比较才能查找成功?若采用顺序查找时,分别需要多少次比较才能查找成功?(8分)
4. 按13、24、37、90、53的次序形成二叉平衡树,回答以下问题:(9分) (1)该二叉平衡树的高度是多少? (2)其根结点是谁?
(3)左子树中的数据是什么? (4)右子树种的数据是什么? 三=算法设计题(共25分)
设计一个算法int increase(LinkList * L),判定带头结点单链表L 是否是递减的,若是返回1,否则返回0.(10分)
假如二叉树采用二叉链存储结构存储,试设计一个算法,输出该二叉树种第一条最长的路径长度,并输出此路径上各结点的值。

(15分)
试题一参考答案
2 3 3 ∧
4 ∧
5 ∧ 5 ∧ 4 1 2 3 4
5
图B. 1 一个有向图G 的邻接表
一、1. C 2. A 3. C 4. D 5. B 6. D 7. B 8. A 9. C 10. B 二、1. 答:哈夫曼树中只有度为0或2的结点,(4)不满足这种条件,可能的哈夫码编码为(1)、(2)和(3)。

2. 答:1,2,3,5,4。

3. 答:由二分查找法得到的二分查找判定树如图B.2所示。

二分查找值为29和90时,分别需要4次比较才能查找成功。

若采用顺序查找时,分别需要3次和10次比较才能查找成功。

4. 答:形成二叉平衡树的过程如图B. 所示。

本题答案为:(1)3 (2)24 (3){13} (4){37,53,90}(顺序无关)。

三、1. 解:判定链表L 从第二个结点开始的每个结点的值是否比其前趋的值小。

若有一个不成立,则整个链表便不是递减的;否则是递减的。

算法如下:
int increase(LinkList , *L)
{ LinkList *p=L->next,*p; if(p!=NULL)
{ while(p->next!=NULL) { q=p->next;
if(q->data<=p->data) p=q; else
32 83
20 12 25 29 18 40 62 95
98 90
图B. 2一棵判定树 13 13 24 13 24 RR 37 13
24
37
90
24
37
13
90
53
53
24
37
13
90 RL
24 37 13 24
53
13
90
37
图B. 3 构造一棵平衡二叉树
return 0;
}
}
return 1;
}
2.解:用path数组保存扫描到当前结点的路径,pathlen数组保存扫描到当前结点的路径长度,longpath保存最长的路径,longpathlen保存最长路径长度。

当b为空时,表示当前扫描的一个分支已扫描完毕,将pathlen与longpathlen进行比较,将较长的路径及路径长度分别保存在longpath和longpathlen中。

对应的算法如下:
void LongPath(BTNode *b,ElemType path[ ],int pathlen,ElemType longpath[],int &longpathlen )
{ int I;
if(b==NULL)
{ if(pathlen>longpathlen) //若当前路径更长,将路径保存在
longpath中
{ for(i=pathlen-1;i>=0;i--)
longpath[i]=path[i];
longpathlen=pathlen;
}
}
else
{ path[pathlen]=b->data; //将当前结点放入路径中
pathlen++; //路径长度增1
LongPath(b->lchild , path,pathlen,longpath,longpathlen); //递归扫描左子树
LongPath(b->rchild , path,pathlen,longpath,longpathlen); //递归扫描右子树
pathlen - -; //恢复环境}
}。

相关文档
最新文档