数据结构-综合练习题-打印

合集下载

数据结构 练习题

数据结构 练习题
A)10 B)110 C)1110 D)1111
6. 已知一棵二叉树的先序遍历序列为EFHIGJK,中序遍历序列为HFIEJGK,则该二叉树根的右子树的根是
A)E B)F C)G D)J
7. 设结点A有左孩子结点B,右孩子结点C,则在先序遍历、中序遍历、后序遍历这三种基本遍历序列中B一定是C的
图6-2 例6.3附图
6 自测习题
1. 简答题
1. *根据权值(1,2,3,4,5,6),构造哈夫曼树,并计算二叉树的带权路径长度。
2. 请
将下图6-1所示的森林转换成二叉树。
图6-1 简答题2的附图森林
3. *已知一棵二叉树的中序遍历序列为DHBEAIFCGJK,该二叉树的后序遍历序列是HDEBIFJKGCA,现请画出这棵二叉树。
第1章 概述
一、简答题
1.简述以下术语的含义并说明它们之间的关系。
数据类型、数据结构、逻辑结构、存储结构
2.简述算法时间效率和空间效率的概念。
3.简述数据结构课程的目的和意义。
二、选择题
1.以下数据结构中,逻辑结构属于线性结构的是
A)有向图 B)链式栈 C)二叉树 D)二叉排序树
四、算法及分析
1.写出交换两个整型变量值的算法,并分析算法的时间复杂度。
2.写出求n的阶乘 的算法,并分析算法的时间复杂度。
第2章 线性表
一、简答题
1.在处理某个问题时,需要存储的数据总量不能确定,并经常需要进行数据的添加和删除操作,此时应选用哪种存储结构?为什么?
3.设有结点定义
struct node
{ int data;
struct node *next;

数据结构练习题(含答案)(DOC)

数据结构练习题(含答案)(DOC)

数据结构练习题习题1 绪论单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。

①A.操作对象B.计算方法C.逻辑结构D.数据映象②A.存储结构B.关系C.运算D.算法2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。

①A.算法B.数据元素C.数据操作D.数据对象②A.操作B.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成。

)A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4. 算法分析的目的是①,算法分析的两个主要方面是②。

① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。

① A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法!② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。

2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。

3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。

4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。

5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。

数据结构练习题及答案

数据结构练习题及答案

数据结构练习题(一)一、单选题1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( )。

A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中( )是非线性结构。

A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在()位置。

脚注(10)表示用10进制表示。

A.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( )。

A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )。

A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个。

A.1 B.2 C.3 D.49.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为__________个,树的深度为___________,树的度为_________。

《数据结构》练习题库

《数据结构》练习题库

一、填空题1.数据结构根据数据元素之间关系的不同特性,有四种基本结构:集合、线性结构、和。

2.数据结构的形式定义可用二元组表示,其成分分为数据元素的有限集,和。

3.一个好的算法设计应满足正确性、、健壮性和效率与低存储量需求。

4.数组是一种存取的存储结构。

5.串中组成的子序列称该串的子串。

6.稀疏矩阵存储时,常采用三元组表和的表示方法。

7.设树T的度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1,则T中叶子结点的个数是。

8.指针pred 指向刚刚访问过的结点,p 指向当前访问的结点,结点的结构含有左指针lchild,右指针rchild,左标志ltag,右标志rtag,当结点的左指针为空时,线索化操作为:p->ltag=1;和。

9.用图的顶点表示活动,用弧表示活动间的优先关系的有向图称为网。

10.排序方法稳定的,是指排序后的序列中的元素前后次序仍不变。

11.文件在存储介质(磁盘或磁带)上的组织方式称为文件的。

12.索引文件是包括和索引表两大部分的文件。

13.在算法是正确的前提下,评价算法的两个标准是、。

14.链表是一种存取的存储结构。

15.设链栈的栈顶指针为LS,链栈的结点结构为,栈空的条件是。

16.在非空双链表(结点结构为)中,指针p指向该链表中的某个结点。

若要指针p往前移动两个结点,即使p指向当前结点的前驱的前驱(假定存在这样的结点),则需要执行一个语句。

17.设无向图G用邻接表表示,图中顶点V i的度等于。

18.中序遍历二叉排序树可得到一个关键字的。

19.后序遍历如图所示的一棵二叉树,所得到结点序列为。

20.在有n 个叶子结点的哈夫曼树中,其结点总数为 。

21.含有n 个顶点的无向图是一个环,则它有 棵生成树。

22.设单链表的结点结构为,且r 始终指向单链表的最后一个结点,要在最后一个结点之后插入由s 所指向的结点,需要执行的三条语句是 ;r=s ;s->next=NULL ;23.串中任意个连续的字符组成的子序列称为 。

专升本数据结构试题

专升本数据结构试题
14.若对象ra和rb中至少有一个属于用户定义的类型,则执行ra==rb时,需要调用 等于
号(==) 重载函数,该函数第一个参数应与 ra ,的类型相同,第二个参数应与rb 的类型相同。
15.从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为 O(n) ,输出一个二维数组b[m][n]中所有元素值的时间复杂度为 O(m*n) 。
三、应用题
1.设计二次多项式ax2+bx+c的一种抽象数据类型,假定起名为QIAdratic,该类型的数据部分分为三个系数项a、b和c,操作部分为:(请写出下面每一个操作的具体实现)。
⑴ 初始化数据成员ab和c(假定用记录类型Quadratie定义成员),每个数据成员的默认值为0。
Quadratic InitQuadratic(float aa=0,float bb=0,float cc=0);
}
A O(1) B O(n) C O(n2) D O(n!)
二、填空题
1.数据的逻辑结构被除数分为 集合结构 、 线性结构 、 树型结构 和 图形结构 四种。
2.数据的存储结构被分为 顺序结构 、 链接结构 、 索引结构 和 散列结构 四种。
3.在线性结构、树型结构和图形结构中,前驱和后继结点之间分别存在着 1对1 、 1对N 和 M对N 的关系。
A n2 B n2/2 C n(n+1) D n(n+1)/2
6.下面算法的时间复杂度为 B 。
int f(unsigned int n){
if(n==0||n==1) return 1;
Else return n*f(n-1);
1、假设有如下关键码及其散列函数值:

数据结构练习题

数据结构练习题

后, rear 的值为 , front 的值 为 ,当前队列的 长 度 为 。 14.设循环队列的容量为 40(序号从 0 到 39), 现经过一系列的入队和出队运算后, 有: ① front=11,rear=19; ② front=19,rear=11; 问在这两种情况下,循环队列中各有元素多少个? 15.写出下列程序段的输出结果(队列中的元素类型 QElem Type 为 char)。 void main( ){ Queue Q; Init Queue (Q); Char x=’e’; y=’c’; EnQueue (Q,’h’); EnQueue (Q,’r’); EnQueue (Q, y); DeQueue (Q,x); EnQueue (Q,x); DeQueue (Q,x); EnQueue (Q,’a’); while(!QueueEmpty(Q)){ DeQueue (Q,y); printf(y); }; printf(x); } 16.简述以下算法的功能(栈和队列的元素类型均为 int) void algo3(Queue &Q){ Stack S; int d; InitStack(S); while(!QueueEmpty(Q)){ DeQueue (Q,d); Push(S,d); }; while(!StackEmpty(S)){ Pop(S,d); EnQueue (Q,d); } }
第一章 绪论
1.数据结构是研究数据的( )以及它们之间的相互关系。 A.物理结构,逻辑结构 B.理想结构,抽象结构 C.理想结构,物理结构 D.抽象结构,逻辑结构 2.从逻辑上可以把数据结构分为( )两大类。 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 3.以下不属于算法要素的是( ) A. 有穷性 B. 可行性 C. 可读性 D. 输入 4.算法的时间复杂度与( )有关。 A.问题规模 B.计算机硬件性能 C.编译程序质 D.程序设计语言 2 5.某算法的时间复杂度为 O(n ),表明该算法的( ) 2 A.问题规模是 n B.执行时间等于 n2 C.执行时间与 n2 成正比 D.问题规模与 n2 成正比 6.假设某算法语句总的执行次数为 T(n)=2n³ +n² ,那么该算法的时间复杂性量级为 ( ) A.O(2) B.O(n³ ) C.O(n² ) D.O(1) 7.设 n 为正整数,下面程序段中标号为①的语句频度为 。 int i = 1; k = 0; while ( i <= n-1 ){ k += 10*i; ① i++; } 8.程序段 for( i=0; i<n; i++ ) for( j=0; j<i; j++ ) k++; 中,语句 k++的执行次数为 。 9.在下面的程序段中,对 x 的赋值语句的渐进时间复杂度为 。 for(k=1;k<=n;k++) for(j=1;j<=n;j++) x=x+1; 10.下面程序段的时间复杂度为 。 void fun(int n) { int y=1; while (y <=n) y=2*y; }

数据结构综合练习题(答案)

数据结构综合练习题(答案)

数据结构综合练习题一、简答题:1、简述堆栈和队列两种数据类型的异同点。

栈和队列都是线性结构,可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队首删除元素。

2、什么静态查找表和动态查找表。

静态查找表——仅作查询和检索操作的查找表。

动态查找表——在查询之后,还需要将“查询”结果为“不在查找表中”的数据元素插入到查找表中;或者,从查找表中删除其“查询”结果为“在查找表中”的数据元素。

3、试比较顺序存储结构和链式存储结构的优缺点。

在什么情况下用顺序表比链表好?答:① 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。

优点:存储密度大(=1),存储空间利用率高。

缺点:插入或删除元素时不方便。

②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针优点:插入或删除元素时很方便,使用灵活。

缺点:存储密度小(<1),存储空间利用率低。

顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。

若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。

4、分析稳定的排序和不稳定的排序方法。

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。

5、图的存储结构有哪些?十字链表,邻接矩阵,邻接表,邻接多重表,二维数组。

6、简述度为2的树与二叉树的区别。

二叉树的度最大为2,而树的度无此限制。

在二叉树中,一个节点的子树有左、右之分,不能互换位置。

而度为2的树则无此限制。

三、程序分析写结果:1、写出下列程序段的输出结果(栈的元素类型为char;字符型)。

数据结构练习题及参考答案

数据结构练习题及参考答案

《数据结构》练习题一、解答题(共50分)1、(8分)假设用于通讯的电文字符集及其出现的频率如下表所示。

请为这8个字符设计哈夫曼编码,并画出其哈夫曼树,计算WPL 。

2. (8分)若一棵二叉树中序遍历和后序遍历序列分别为:DBEHGAFIC 和DHGEBIFCA 。

试画出这棵二叉树,并写出其先序遍历和层序遍历序列。

3.(16分)以下无向网络以邻接表为存储结构(假设邻接表的顶点表按字母a 、b 、c 、d 、e 、f 、g 、h 的顺序依次存储,邻接表的边表结点按顶点的下标由小到大链接)。

请画出其邻接表,并写出从顶点f 出发,分别进行深度和广度优先遍历的序列,写出用Prime 方法从顶点c开始产生最小生成树的边的序列。

4.(8分)已知键值序列为(44,39,67,25, 52,59,43,84,54,58,15,26,12,73,92,69),取填充因子α=0.8,采用线性探查法处理冲突,试构造散列表。

⒌(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81),用希尔排序方法进行排序,d1=5,d2=3,d3=1,则第二趟的排序结果是( )。

⒍(5分)已知一组记录为(67,88,15,12,60,37,7,31,45,81) ,用堆(大根堆)排序方法进行排序,第一趟的排序结果是( )。

二、完善程序(共20分,每空2分)1.假设一组递减有序的原始数据存储在数组r 中,存放元素的下标下限为low,下标上字符 出现频率 a 0.05 b 0.03 c 0.24 d 0.16 e 0.08 f 0.24 g 0.18 h0.02限为high,以下是在数组中查找数值为k的折半查找算法。

请填空完善程序。

int BinSearch(int r[ ], int low,int high,int k){ int l,h,m;l= low; h= high;while ( ⑴){m= ⑵;if (k < r[m]) ⑶;else if (k > r[m]) ⑷;else return m;}return 0;}2. 以下程序功能是将数组r中,从下标first到end之间的元素进行快速排序的分区。

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

数据结构综合练习题1填空题1.数据结构包含三个方面的内容,分别是数据的逻辑结构、数据的存储结构和数据的运算。

2.实现数据结构的四种存储方法有顺序存储方法、链接存储方法、索引存储方法和散列存储方法。

3.数据结构的逻辑结构有线性结构和非线性结构两大类。

4.一种抽象数据类型包括抽象数据的组织和与之相关的操作两个部分。

5.算法的五个重要特性是输入、输出、确定性、可行性和有穷性。

6.栈顶的位置是随进栈和出栈操作而变化的。

7.在链队列只有一个元素的情况下,对其做删除操作时,应当把对头指针和队尾指针都置为null。

8.操作系统中先来先服务是数据结构中的队列应用的典型例子。

9.在解决计算机主机与打印机之间速度不匹配问题时,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机从该缓冲区中取出数据打印。

该缓冲区应该是一个队列结构。

10.有一棵树如下图所示,回答下列问题。

11.有一棵树如下图所示,回答下列问题。

(1)这棵树的根结点是K1;(1)结点k3的度是 2 ;(2)这棵树的叶子结点是K2,K4,K5,K7;(2)这棵树的度为 3 ;12.有一棵树如下图所示,回答下列问题。

13有一棵树如下图所示,回答下列问题。

这棵树的深度为 4 ;(1)结点K3的子女是 K5 ,K6 ; (2)结点K3的双亲结点是 K1 。

14.在一棵二叉树中,度为零的结点个数为n0,度为2的结点的个数为n2,则有n0=n2+1。

15.n (n>0)个结点的二叉树高度最大是 n ,其深度最小是⎡log 2(n+1)⎤或⎣⎦1log 2+n 。

16.n(n>0)个结点的满二叉树深度是)1(log 2+n ,叶子结点数是(n+1)/2。

阿 17.下面二叉树的中序序列是GDHABC 。

18.n (n>0)个结点的哈夫曼树中度为2的结点共 (n-1)/2 个,叶子结点共(n+1)/2个。

19.n 个顶点的有向图最多有 n*(n-1) 条边。

20.n (n>0)个顶点的连通无向图各顶点度之和最少是 2(n-1) 。

21.有6个顶点的无向图至少应有 5 条边才能确保是一个连通图。

22. n(n>0)个顶点的连通无向图至少有 n-1 条边。

23. 恰有 n(n-1) 条边的有向图称为有向完全图。

2单项选择题1.下列说法正确的是( B )A.数据元素是具有独立意义的最小标识单位B.原子类型的值不可再分解C.原子类型的值由若干个数据段组成D.结构类型的值不可再分解2.一个存储结点存放一个(B )A.数据项B.数据元素C.数据结构D.数据类型3.在数据结构中,从逻辑上可以把数据结构分成(C )A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4.线性结构是数据元素之间存在一种(D )A.一对多关系B.多对多关系C.多对一关系D.一对一关系5.算法分析的目的是(B )A.正确性和简明性B.时间复杂性和空间复杂性C.可读性和文档性D.数据复杂性和程序复杂性6.算法必须具备输入输出和(C )A.计算方法B.排序方法C.解决问题的有限运算步骤D.程序设计方法7.线性表中正确的说法是(D )A.每个元素都有一个直接前驱和一个直接后继B.线性表至少要求一个元素C.表中的元素必须按由小到大或由大到小排序D.除了第一个和最后一个元素外,其余每个元素都有且仅有一个直接前驱和一个直接后继8.线性表是具有n个(C )的有限序列A.整数B.字符C.数据元素D.数据项9.线性表采用链式存储结构时,结点的存储地址(C )A.必须是不连续的B.必须是连续的C是否连续都可以D.和头结点的存储地址相连续10.在带有头结点的单链表中插入一个新结点时不可能修改(A )A.头指针B.头结点指针域C.开始结点指针域D其它结点指针域11.相对于顺序存储结构而言,链接存储的优点是(C )A.随机存取B.节约空间C.增、删操作方便D.结点关系简单12.设线性表有n个元素,下面算法中在顺序表上实现比在链表上实现效率更高的是(A )A.输出第i(1≤i<≤n)个元素值B.交换第0个元素与第1个元素的值C. 顺序输出这n 个元素的值D. 输出与给定值x 相等的元素在线性表中的序号 13. 下列说法正确的是( A )A. 栈是一种线性表B. 栈具有先进先出特性C. 栈删除运算会引起其它元素的移动D. 栈插入运算会引起其它元素的移动14. 一个栈的入栈序列是:a,b,c,d,e, 则栈的不可能的输出序列是( C )A. EdcbaB.decbaC.dceabD.abcde15. 一个链栈的栈顶指针是topNode ,则执行出栈操作时(栈非空),用topElement 保存被删除结点的数据元素,则执行( D )A. topElement = top; top = topNode.next;B. topElement = topNode.element;C. topNode = topNode.next; topElement = topNode.element;D. topElement = topNode.element; topNode = topNode.next; 16. 一个队列的入队序列是a,b,c,d, 则队列的输出序列是( B )A. d,c,b,aB.a,b,c,dC.a,d,c,bD.c,b,a,d 17. 将递归过程转化为非递归过程需要用到( A )A.栈B.队列C.树D.图 18. 栈和队列的共同点是( C )A. 都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点 19. 树最适合用来表示( D )A. 有序数据元素B.无序数据元素C.元素之间无联系的数据D.元素之间具有分支层次关系的数据20. 一棵深度为9的满二叉树的叶结点数是( B )A. 255B.256C.511D.51221. n 个结点的满二叉树的高度是( B )A.n/2B.)1(log 2+nC.)1(log 2-nD.n 2l og 22. 按照二叉树的定义,具有3个结点的二叉树有( C )种A. 3B.4C.5D.623. 深度为5的二叉树至多有( C )个结点A. 16 B32 C.31 D.1024. 由结点A 、B 、C 构成不同的二叉树共( D )棵A. 6B.18C.36D.3025.下列说法正确的是(D )A.二叉树是度为2的无序树B.二叉树中结点只有一个孩子时无左右之分C.二叉树中必有度为2的结点D.二叉树中的一个结点最多只有两棵子树,并且有左右之分26.一棵二叉树的先序序列是ABCDEF,它可能的中序序列是(A )A.CBDAFEB.CABDEFC.DABCEFD.FCABED27.要唯一地确定一棵二叉树,只需要知道该二叉树的(C )A.前序序列B.中序序列C.中序和后序序列D.前序和后序序列28.任何一棵二叉树的叶结点在先序、中序和后序遍历中的相对次序(A )A.不发生改变B.发生改变C.不能确定D.以上都不对29.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的(B )倍A.1/2B.1C.2D.430.用邻接矩阵存储图所需的存储空间大小仅与(A )有关A.图的顶点数B.图的边数C.图的顶点数与边数之和D.图的各顶点度之和31.若存储图G的邻接矩阵是对称矩阵,则G(C )A.一定是无向图B.一定是连通无向图C.可能是无向图D.一定是有向图32.下列说法正确的是(B )A.有向图的邻接矩阵一定是非对称矩阵B.无向图的邻接矩阵一定是对称矩阵C.若图G的邻接矩阵是对称的,则G一定是无向图D.有向图的邻接矩阵一定是下三角矩阵33.已知一个图如下所示。

若从顶点a出发按深度优先搜索算法进行遍历,则可能得到的一种顶点序列为(D )A.abecdfB.acfebdC.aebfcdD.aedfcb3.解答题1.简述数据结构的逻辑结构和存储结构的区别和联系。

它们如何影响算法的设计与实现?若用结点表示某个数据元素,则结点和结点之间的逻辑关系就称为数据的逻辑结构。

数据在计算机中的存储表示称为数据的存储结构。

可见,数据的逻辑结构是反映数据之间的固有联系,而数据的存储结构是数据在计算机中的存储表示。

尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相邻,但可通过结点的内部信息,找到其相邻的结点,从而保留了逻辑结构的特点。

由于采用的存储结构不同,该数据结构上的操作灵活性、算法复杂度等区别较大。

2.简述数据的运算与数据逻辑结构和存储结构之间的关系。

数据的运算定义在逻辑结构上,也就是说,一旦数据的逻辑结构确定了,就可以定义在这种逻辑结构上可以进行何种运算了。

但是,数据的运算的具体实现时依赖于数据的存储结构的。

同样的逻辑结构,可能有不同的存储结构。

那么,在不同的存储结构上实现同一个数据运算的方法也不一样。

所以,要具体实现某个运算,还要根据数据的存储结构来定。

3.试举一个应用数据结构的例子,叙述其逻辑结构、存储结构、运算这三方面的内容。

要点:说明逻辑结构、存储结构的概念,同时用自然语言例子中的逻辑结构和存储结构和运算的基本规则4.何时选用顺序表、何时选用链表作为线性表的存储结构为宜?(1)基于空间的考虑:当线性表的长度变化较大,难以估计其存储规模时,采用动态链表作为存储结构为好。

当线性表的长度变化不大,易于事先确定其大小时,为了节省存储空间,采用顺序表为好。

(2)基于时间的考虑:若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为好。

反之,对于频繁进行插入和删除的线性表,采用链表为好。

5.设二叉树如下所示,试采用顺序存储方法和链接存储方法画出它的存储结构。

bcd链式存储结构如下:6.设二叉树如下所示,试采用顺序存储方法和链式存储方法画出它的存储结构。

顺序存储结构如下:链式存储结构如下:7.设树形结构如下,请画出该树的双亲孩子链表表示。

ABDEF解:0123458.现有权值:7,16,5,28,2。

试构造这组权值的哈夫曼(Huvvman )树。

用树形表示法画出这个哈夫曼(Huvvman )树。

289.以下面数据作为叶子结点的权值构造一棵哈夫曼(Huvvman )树。

用树形表示法画出这个哈夫曼(Huvvman )树。

17,3,7,8,24,10,16,9,610.设图G=(V ,E ),V={ v0,v1,v2,v3,v4},E={<v0,v1>,<v0,v2>,<v2,v3>,<v1,v4>,<v3,v4>}。

试给出G 的邻接矩阵和邻接表。

邻接矩阵如下0 1 1 0 00 0 0 0 1 0 0 0 1 0 0 0 0 0 10 0 0 0 0邻接表如下0214311.已知一个有向图G 的顶点集合为{A,B,C,D,E},其邻接表为01234顶点表出边表(1)画出G 的图形(2)分别给出G 从A 开始的深度优先和广度优先遍历序列 (1)(2)从A 开始的深度优先序列:ABCDE从A 开始的广度优先序列:ABDEC12.设无向图G 的顶点集合为{a,b,c,d,e,f},其邻接表如下:01234顶点表边表5(1)画出G 的图形(2)分别给出G 从a 开始的深度优先和广度优先遍历序列 (1)该图的图形(2)从a 开始的深度优先序列:abdcfe从a 开始的广度优先序列:abcdef4.算法设计题1.设顺序表类型定义如下:public class AList implements ListInterface {private Object[] entry; // 线性表元素数组private int length; // 线性表当前元素的个数private static final int MAX_SIZE = 50; // 默认的线性表的最大长度public AList() {length = 0;entry = new Object[MAX_SIZE];}}请写出从顺序表中删除指定位置的元素的算法。

相关文档
最新文档