数据结构测验(二)

合集下载

数据结构c期末考试题及答案

数据结构c期末考试题及答案

数据结构c期末考试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,以下哪种数据结构可以有效地表示元素之间的“一对一”关系?A. 链表B. 栈C. 队列D. 哈希表答案:D2. 以下哪个算法的时间复杂度是O(n^2)?A. 冒泡排序B. 快速排序C. 二分查找D. 归并排序答案:A3. 在二叉树中,叶子节点是指?A. 没有子节点的节点B. 只有一个子节点的节点C. 有两个子节点的节点D. 包含子节点的节点答案:A4. 以下哪种排序算法是稳定的?A. 快速排序B. 冒泡排序C. 堆排序D. 选择排序答案:B5. 在图的遍历中,深度优先搜索(DFS)使用的是?A. 栈B. 队列C. 链表D. 哈希表答案:A6. 哈希表解决冲突的一种方法是?A. 链地址法B. 线性探测法C. 二次探测法D. 所有选项都是答案:D7. 以下哪种数据结构适合实现数据库索引?A. 树B. 链表C. 数组D. 队列答案:A8. 以下哪种排序算法的空间复杂度是O(1)?A. 插入排序B. 归并排序C. 快速排序D. 冒泡排序答案:A9. 在图的表示中,邻接矩阵适用于表示?A. 稠密图B. 稀疏图C. 无向图D. 有向图答案:A10. 以下哪种数据结构可以用于实现LRU缓存淘汰算法?A. 队列B. 栈C. 链表D. 哈希表答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种______的数据结构,遵循后进先出的原则。

答案:线性2. 一个长度为n的数组,使用二分查找算法查找一个元素的时间复杂度是______。

答案:O(log n)3. 红黑树是一种______的二叉查找树。

答案:平衡4. 在图的遍历中,广度优先搜索(BFS)使用的是______。

答案:队列5. 哈希表的装载因子是指______与哈希表大小的比值。

答案:哈希表中已存元素数量6. 快速排序算法中,基准元素的选择会影响算法的______。

答案:性能7. 在图的表示中,邻接表适用于表示______。

数据结构测验答案

数据结构测验答案

数据结构第二单元测验答案一、选择题1.由 3个结点可以构造出多少种不同的有向树( )A.2B.3C.4D.52.由 3个结点可以构造出多少种不同的二叉树( )A.2B.3C.4D.53.二叉树的第 I 层上最多含有结点数为 ( )A.2 IB.2I-1 -1C.2 I-1D.2I -14.一棵二叉树高度为 h, 所有结点的度或为 0,或为 2,则这棵二叉树最少有 ( ) 结点A.2hB.2h-1C.2h+1D.h+1除第一层外 , 每层最少 2 个结点5.一棵树高为 K 的完全二叉树至少有 ( ) 个结点A.2 k– 1B.2k-1 –1 C . 2k-1 D.2k6.深度为 6 的二叉树最多有 () 个结点A. 64 B. 63 C.32 D.317.设树 T 的度为 4,其中度为1,2,3 和 4 的结点个数分别为4,2,1,1 则 T 中的叶子数为( )A.5B.6C.7 D . 88.若一棵二叉树具有10 个度为 2 的结点, 5 个度为 1 的结点,则度为 0 的结点个数是 ( )A.9B. 11C.15D.不确定9.一棵完全二叉树上有 1001 个结点,其中叶子结点的个数是( )A.250B.500C.254D.505 E .以上答案都不对10.对于有 n 个结点的二叉树 , 其高度为 ( )A.nlog2nB.log2nC.log 2n |+1D. 不确定11. 将含有 83 个结点的完全二叉树从根结点开始编号,根为序结点编号,那么编号为41 的双亲结点编号为()1 号,按从上到下. 从左到右顺A.42B.40C.21D. 2012.一个二叉树按顺序方式存储在一个维数组中,如图0 A 1 2B3C45D6 78 9 10E F11 12 13 14G H I J则结点 E 在二叉树的第()层。

A. 1B. 2C. 3D.413. 某二叉树的先序序列和后序序列正好相反,则该二叉树一定是()的二叉树A.空或只有一个结点B. 高度等于其结点数C. 任一结点无左孩子D.任一结点无右孩子14.任何一棵二叉树的叶结点在其先根. 中根 . 后根遍历序列中的相对位置 ( )A. 肯定发生变化B.有时发生变化C. 肯定不发生变化D.无法确定15. 二叉树线索化后,仍不能有效求解的问题是()A.先序线索二叉树中求先序后继B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前驱D. 后序线索二叉树中求后续后继一共有两种情况 : 一个是先序线索中求先序前驱和后序线索求后序后继16. 如果 T 2 是由有序树 T 转化而来的二叉树,那么T 中结点的前序就是T 2 中结点的 ( )A. 前序B. 中序C. 后序D.层次序17. 设森林 T 中有 4棵树,第一 . 二 . 三. 四棵树的结点个数分别是n1,n2,n3,n4, 那么当把森林 T 转换成一棵二叉树后,且根结点的右子树上有 ( ) 个结点。

数据结构--第二章考试题库(含答案)

数据结构--第二章考试题库(含答案)

第2章线性表一选择题1.下述哪一条是顺序存储结构的优点?()【北方交通大学 2001 一、4(2分)】A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学 2001 一、14(2分)】A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

3.线性表是具有n个()的有限序列(n>0)。

【清华大学 1998 一、4(2分)】A.表元素 B.字符 C.数据元素 D.数据项 E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

【哈尔滨工业大学 2001二、1(2分)】A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

【南开大学 2000 一、3】A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。

A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表【合肥工业大学 2000 一、1(2分)】7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。

则采用()存储方式最节省运算时间。

【北京理工大学 2000一、1(2分)】A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表8. 静态链表中指针表示的是(). 【北京理工大学 2001 六、2(2分)】A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址9. 链表不具有的特点是()【福州大学 1998 一、8 (2分)】A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比10. 下面的叙述不正确的是()【南京理工大学 1996 一、10(2分)】A.线性表在链式存储时,查找第i个元素的时间同i的值成正比B. 线性表在链式存储时,查找第i个元素的时间同i的值无关C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关11. 线性表的表元存储方式有((1))和链接两种。

国家开放大学(电大)数据结构(本)阶段性学习测验答案

国家开放大学(电大)数据结构(本)阶段性学习测验答案

一、单项选择题(每小题3分,共60分)题目1把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。

A. 物理结构题目2下列说法中,不正确的是()。

C. 数据项可由若干个数据元素构成题目3一个存储结点存储一个()。

C. 数据类型题目4数据结构中,与所使用的计算机无关的是数据的()。

A. 逻辑结构题目5在线性表的顺序结构中,以下说法正确的是()。

B. 逻辑上相邻的元素在物理位置上也相邻题目6对链表, 以下叙述中正确的是()。

D. 不能随机访问任一结点题目7下列的叙述中,不属于算法特性的是()。

B. 可读性题目8算法的时间复杂度与()有关。

A. 算法本身题目9设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为()。

B. n-i+1题目10设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为()。

C. n-i题目11在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。

C. p->next=q->next题目12在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。

A. s->next=p->next; p->next=s;题目13非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。

A. p->next==head题目14链表不具有的特点是()。

B. 可随机访问任一元素题目15带头结点的链表为空的判断条件是()(设头指针为head)。

C. head->next==NULL题目16在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。

则原顺序表的长度为()。

C. 20题目17有关线性表的正确说法是()。

B. 除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继题目18向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动()个元素。

数据结构_模拟测验题1-4(带答案)

数据结构_模拟测验题1-4(带答案)

单元测验1一.判断题(ㄨ)(1)数据的逻辑结构和数据的存储结构是相同的。

(ㄨ)(2)程序和算法原则上没有区别,所以在讨论数据结构时可以通用。

(√)(3)从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。

(√)(4)数据的存储结构是数据的逻辑结构的存储映像。

(ㄨ)(5)数据的逻辑结构是依赖于计算机的。

(√)(6)算法是对解题方法和步骤的描述。

二.填空题1.数据有逻辑结构和存储结构两种结构。

2. 数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。

3.树形结构和图形结构合称为非线性结构。

4.数据的存储结构又叫物理结构。

5.数据的存储结构形式包括:顺序存储和链式存储6.线性结构中的元素之间存在一对一的关系。

7.树形结构中的元素之间存在一对多的关系,8.图形结构的元素之间存在多对多的关系。

9.数据结构主要研究数据的逻辑结构、存储结构和二者之间的相互运算三个方面的内容。

10.一个算法的时间复杂度是问题规模的函数。

11.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O(nlog2n)。

12.若一个算法中的语句频度之和为T(n)=3n+nlog2n+n2,则算法的时间复杂度为O(n2)。

三.选择题1.数据结构通常是研究数据的(D )及它们之间的相互联系。

A.联系与逻辑B.存储和抽象C.联系和抽象D.存储结构和逻辑结构2.数据在计算机内存储时,数据元素在存储器内相对位置可以表示元素之间的逻辑关系,称为(D)。

A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.链接存储的存储结构所占存储空间(A)。

A.分两部分,一部分存放结点的值,另一部分存放表示结点间关系的指针B.只有一部分,存放结点值C.只有一部分,存储表示结点间关系的指针D.分两部分,一部分存放结点值,另一部分存放结点所占单元数4.在数据结构中,与所使用的计算机无关的是(B)A.物理结构B.逻辑结构C.存储结构D.逻辑和存储结构5.算法能正确的实现预定功能的特性称为(A)A.正确性B.易读性C.健壮性D.高效性6.算法在发生非法操作时可以作出处理的特性称为(B)A.正确性B.健壮性C.易读性D.高效性7.下列时间复杂度中最坏的是(A)A.O(n2)B.O(log2n)C.O(n)D.O(1)8. 算法分析的两个主要方面是(C)。

数据结构-试卷二及答案

数据结构-试卷二及答案

数据结构-试卷二及答案一、判断(每小题 1 分,共 10 分) 1.数据的存储结构是数据的逻辑结构的存储映象,不仅要存储数据元素的值,还要存储元素之间的相互关系。

2.用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。

3.完全二叉树的叶子结点只能出现在最后一层上。

4.折半查找方法要求待查表必须是有序的顺序表。

5.在有向图 G 中, V 2 , V 1 和 V 1 , V 2 是两条不同的边。

6.图的最小生成树是唯一的。

7.从循环单链表的某一结点出发,只能找到它的后继结点,不能找到它的前趋结点。

8.在单链表中,头结点是必不可少的。

9.对快速排序来说,初始序列为正序和反序,都是最坏情况。

10.广义表是特殊的线性表。

二、选择(每题 1 分,共 15 分) 1.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S 。

若每个元素出栈后立即进入队列 Q ,且 7 个元素出队的顺序是bdcfeag ,则栈 S 的容量至少是()。

A.1 B.2 C.3 D.4 2.下列线索二叉树1/ 8中(用虚线表示线索),符合后序线索树定义的是( )。

3.已知广义表 A= (( a,b ) ,(c,d) ) , 则 head(A) 等于 ( )。

A.(a,b) B.((a,b)) C.a,b D.a 4.设字符串s1=‘ABCDEFG’,s2=‘PQRST’, 则运算s=strcat(strsub(s1,2,strlen(s2)),strsub (s1,strlen(s2),2))后结果为()。

A.BCQR B.BCDEF C.BCDEFG D.BCDEFEF 5.具有 8 个顶点的连通图的深度优先生成树,其边数为()。

A.8 B.9 C.7 D.6 6.算法分析的两个主要方面是()。

A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 7.下列四种排序中()的空间复杂度最大。

数据结构测试2参考答案

数据结构测试2参考答案

参考答案:一、选择题1. C2.D 3、D 4、A 5、A 6、D 7、B 8、C 9、D 10、D11、D 12、B 13、C 14 C 15.B 16.C 17.C 18.B 19.B 20.C二、填空题1、操作受限、后进先出、先进先出2、bc 23、top--4、d5、n-16、4 7.LOC (A[0][0])+(n*i+j)*k三、判断题1、√2、√3、×4、√5、×6、√7、√8、×9、√ 10、√四.算法分析题1、stack 2. 算法功能是借助于栈将队列中的元素逆置五、算法填空题LNode *MergeSort(LNode *A,LNode *B) // 归并两个带头结点的递增有序表为一个带头结点递减有序表{LNode *pa , *pb , *q , *C ;pa=A->next;//pa指向A表开始结点C=A;C->next=NULL;//取A表的表头建立空的C表pb=B->next;//pb指向B表开始结点free(B);//回收B表的头结点空间while(pa&&pb){if (pb->data>pa->data) // 当A中的元素小于等于B中当前元素时,将pa表的开始结点摘下{ q=pa;pa=pa->next; }else// 当B中的元素大于A中当前元素时,将pb表的开始结点摘下{ q=pb;pb=pb->next;}q->next=C->next;C->next=q;//将摘下的结点q作为开始结点插入C表}while(pa){//若pa表非空,则处理pa表q=pa;pa=pa->next;q->next=C->next;C->next=q;}while(pb){//若pb表非空,则处理pb表q=pb;pb=pb->next;q->next=C->next;C->next=q;}return(C);}。

数据结构期末测验

数据结构期末测验

数据结构期末测验1. 使用双链表存储线性表,其优点是可以() [单选题] *A.提高查找速度(正确答案)B.更方便数据的插入和删除C.节约存储空间D.很快回收存储空间2. 下面几种算法时间复杂度中,时间复杂度最高的是()。

[单选题] *A.O(nlog2n)B.O(n2)C.O(n)D.O(2n)(正确答案)3. 线性表(a1,a2,…,an)以链接方式存储时,若指针指向头结点,则访问第i个元素的时间复杂度为( ) [单选题] *A.O(i)B.O(1)C.O(n)(正确答案)D.O(i-1)4. 串是一种() [单选题] *A.链式存储的线性结构B.链式存储的非线性结构C.限制元素类型的线性结构(正确答案)D.限制存取点的非线性结构5. 设顺序线性表中有n个数据元素,则删除表中第i个(从1开始计数)元素需要移动()个元素。

[单选题] *A.n-i(正确答案)B.n+1-iC.n-1-iD.i6. 从19个元素中查找其中某个元素,如果最多进行5次元素之间的比较,则采用的查找方法只可能是()。

[单选题] *A.折半查找(正确答案)B.分块查找C.顺序查找D.都不可能7. 在含有12个结点的平衡二叉树上,查找关键字为35(存在该结点)的结点,则依次比较的关键字有可能是()。

[单选题] *A.46,36,18,20,28,35B.47,37,18,27,36C.27,48,39,43,37D.15,45,25,35(正确答案)8. 一个递增表为R[0..11],采用折半查找方法,在某次成功查找到指定的记录时,以下()是可能的记录比较序列。

[单选题] *A.R[0]、R[5]、R[2]B.R[0]、R[6]、R[9]C.R[5]、R[8]、R[10](正确答案)D.R[5]、R[2]、R[4]9. 当采用分块查找时,数据的组织方式为()。

[单选题] *A.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块(正确答案)C.数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D.数据分成若干块,每块中的数据个数必须相同10. 设待查找元素为47,且已存入变量k中,如果在查找过程中,和k进行比较的元素依次是47、32、46、25、47,则所采用的查找方法()。

数据结构阶段测验

数据结构阶段测验

线性数据结构测验一、 选择题 (每题4分,共40分)1、线性表是具有n个( )的有限序列(n≥0)。

A.数据对象 B.字符 C.数据元素 D.数据项2、线性表的顺序存储结构是一种( )的存储结构,线性表的链式存储结构是一种( )的存储结构。

A.随机存取 B.顺序存取 C.索引存取 D.散列存取3、将一个递归算法改为对应的非递归算法时,通常需要使用( )。

A.栈 B.队列 C.循环队列 D.优先队列4、在一个链队列中,假设f和r分别为队首和队尾指针,则插入s所指结点的操作是( )。

A.f‐>next=s;f=s; B.r‐>next=s;r=s; C.s‐>next=r;r=s; D.s‐>next=f;f=s;5、串的长度是指( )A.串中所含不同字母的个数 B.串中所含字符的个数C.串中所含不同字符的个数 D.串中所含非空格字符的个数6、若串S1=‘ABCDEFG’, S2=‘9898’ ,S3=‘###’,S4=‘012345’,执行concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index(S2,‘8’),length(S2))) 其结果为( )A.ABC###G0123 B.ABCD###2345 C.ABC###G2345 D.ABC###G12347、常对数组进行的两种基本操作是( )A.建立与删除 B.索引和修改 C.查找和修改 D.查找与索引8、设有一8×8下三角矩阵A[8][8],采用按行压缩存储的方式存放在一维数组B[ ]中,则数组B[ ]的容量至少需要( )个元素空间。

A.32 B.36 C.16 D.649、 假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为( )。

《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪种数据结构是线性结构?A. 栈B. 树C. 队列D. 图答案:A2. 在计算机科学中,什么是最基本的数据结构?A. 数组B. 链表C. 栈D. 树答案:C3. 下列哪种操作的时间复杂度是O(1)?A. 在链表中插入元素B. 在数组中查找元素C. 在树中删除节点D. 在图中寻找最短路径答案:B4. 下列哪种数据结构常常用于实现栈和队列?A. 数组B. 链表C. 树D. 图答案:A5. 下列哪种数据结构是有序的?A. 栈B. 队列C. 链表D. 图答案:C二、填空题(每题2分,共20分)1. 在数据结构中,栈是一种后进先出(____)的数据结构。

答案:线性表2. 队列是一种先进先出(____)的数据结构。

答案:线性表3. 链表是一种____数据结构,由一系列节点组成。

答案:非线性4. 二叉树是一种特殊的树,它的每个节点最多有两个____。

答案:子节点5. 哈希表是通过____函数将关键字映射到表中的位置来访问数据。

答案:哈希三、判断题(每题2分,共20分)1. 树是一种线性结构。

()答案:错误2. 链表的插入和删除操作时间复杂度都是O(1)。

()答案:错误3. 图是一种线性结构。

()答案:错误4. 哈希表是一种基于顺序结构的的数据结构。

()答案:错误5. 在数据结构中,时间复杂度O(n)表示算法随着输入规模的增加而线性增长。

()答案:正确四、简答题(每题10分,共30分)1. 请简述栈和队列的特点和应用场景。

答案:栈是一种后进先出(LIFO)的数据结构,应用场景包括函数调用栈、表达式求值等。

队列是一种先进先出(FIFO)的数据结构,应用场景包括任务队列、缓冲区等。

2. 请简述链表的优缺点。

答案:链表的优点包括动态扩容、插入和删除操作时间复杂度为O(1)、可以方便地实现各种复杂数据结构。

缺点包括占用内存空间较大、不如数组支持随机访问。

数据结构阶段测评大全含答案

数据结构阶段测评大全含答案

数据结构阶段测评大全含答案一、数据结构的基本概念和分类数据结构是计算机科学中非常重要的概念,它是指数据元素之间的关系及其操作方法的研究。

数据结构可以分为线性结构、树状结构和图状结构。

线性结构是最基本的数据结构之一,包括线性表、栈、队列和串。

线性表是由若干个具有相同类型的数据元素组成的有限序列,它的特点是元素之间只有一个前驱和一个后继。

栈是一种特殊的线性表,它的特点是只能在一端进行插入和删除操作,即后进先出。

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

串是由零个或多个字符组成的有限序列,它是一种特殊的线性表。

树状结构是一种重要的非线性结构,包括二叉树、多叉树和赫夫曼树。

二叉树是每个节点最多有两个子树的树结构,它的特点是左子树和右子树是有顺序的。

多叉树是每个节点可以有多个子节点的树结构,它的特点是子节点之间没有顺序。

赫夫曼树是一种带权路径长度最短的树结构,它广泛应用于数据压缩和编码中。

图状结构是数据结构中最复杂的一种,包括图和有向图。

图是由顶点集合和边集合组成的,它的特点是顶点之间可以有多个相互关联的边。

有向图是图的一种特殊形式,它的边有方向,即从一个顶点到另一个顶点。

二、数据结构的常用算法和应用1. 线性结构的常用算法(1)线性表的顺序存储结构和链式存储结构。

顺序存储结构是将元素存放在一块连续的存储空间中,它的特点是可以随机访问元素。

链式存储结构是通过指针将元素存放在不连续的存储空间中,它的特点是插入和删除操作较为方便。

(2)栈的应用:括号匹配、逆波兰表达式计算等。

(3)队列的应用:生产者消费者问题、优先级队列等。

2. 树状结构的常用算法(1)二叉树的遍历:前序遍历、中序遍历和后序遍历。

(2)二叉搜索树的插入和删除操作。

(3)赫夫曼树的构建和编码解码。

3. 图状结构的常用算法(1)图的遍历:深度优先搜索和广度优先搜索。

(2)最短路径问题:Dijkstra算法和Floyd算法。

东北大学期末考核《数据结构Ⅱ》期末考试备战高分题集

东北大学期末考核《数据结构Ⅱ》期末考试备战高分题集

数据结构II试题期末考试备战题集(线上)一、单选题(每小题2分,共6分)1.抽象数据类型的三个组成部分分别为A.数据对象、数据关系和基本操作B.数据元素、逻辑结构和存储结构C.数据项、数据元素和数据类型D.数据元素、数据结构和数据类型2.下列各式中,按增长率由小至大的顺序正确排列的是A.n,n!,2n ,n3/2 B.n3/2,2n,n logn,2100C.2n,log n,n logn,n3/2 D.2100,logn, 2n, n n 3. 已知指针p和q分别指向某单链表中第一个结点和最后一个结点。

假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为A. q->next=s->next;s->next=p;B. s->next=p;q->next=s->next;C. p->next=s->next;s->next=q;D. s->next=q;p->next=s->next;参考正确选项:1、A2、D3、A二、填空题(每小题1分,共10分)1.下面程序段中带下划线的语句的执行次数的数量级是( )。

i=1;WHILE(i<n)i=i*2;2.假设带头结点的非空单循环链表中仅设尾指针L,则在第1个结点之前插入指针s所指结点的语句依次是()。

3.无表头结点的链队列Q为空的条件是()。

4.设Q[0..N-1]为循环队列,其头、尾指针分别为P和R,则队Q中当前所含元素个数为()。

5.一棵含999个结点的完全二叉树的深度为()。

6.在 AOV网中,存在环意味着某项活动以自己为先决条件;对程序的数据流图来说,它表明存在()。

7. 有向图G可拓扑排序的判别条件是( )。

8.如果结点A有 3个兄弟,而且B是A的双亲,则B的度是()。

9.应用回溯与分支限界法解决实际问题时,在搜索过程中利用判定函数,也称为()。

数据结构测验12-2答案

数据结构测验12-2答案

数据结构测验二一、单项选择题:1.任何一棵二叉树T,如果其终端结点数为no ,度为2的结点数为n2,则()。

A.no =n2+1 B. n2=n+1 C.n=2n2+1 D.n2=2n+12.设X是一棵树,x’是对应于X的二叉树,则X的后根遍历和x’的()遍历相同。

A.先序B.中序C.后序D.层次序3.深度为K的二叉树至多有()个结点。

A. 2kB. 2k–1C. 2k-1D. 2k-1 -1 4.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为()。

A.98 B.99 C.50 D.485.结点先序为XYZ的不同二叉树,那么它有()不同形态。

A.3 B.4 C.5 D.66.某二叉树的先序和后序序列正好相反,则该二叉树一定是()的二叉树。

A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子7.树最适合用来表示()。

A.有序数据元素 B.无序数据元素C.元素之间无联系的数据D.元素之间有分支层次关系的数据8.二叉树在线索化后,仍不能有效求解的问题是()。

A.前序线索二叉树中求前序后继 B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前趋 D.后序线索二叉树中求后序后继9.判断线索二叉树中某结点p有左孩子的条件是()。

A.p!=null B.p->lchild!=nullC.p->ltag==Thread D.p->ltag==Link10.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()。

A.发生改变 B.不发生改变C.不能确定 D.以上都不对11、任何一个无向连通图的最小生成树()。

A. 只有一棵B. 一棵或多棵C. 一定有多棵D. 可能不存在12.在一个无向图图中,所有顶点的度数之和等于图的边数的()倍。

A.l/2 B. 1 C.2 D. 4 13.有8个结点的无向图最多有()条边。

数据结构测试

数据结构测试

数据结构测试一、绪论数据结构是计算机科学中的重要概念,它用于组织和存储数据,以便于高效地访问和操作。

数据结构的选择对于算法的效率和程序的性能具有重要影响。

本文将介绍数据结构测试的目的、方法和步骤,并通过一个具体的示例来展示测试的过程和结果。

二、测试目的数据结构测试的主要目的是验证数据结构的正确性和性能。

具体而言,测试的目标包括:1. 验证数据结构的基本操作是否正确,如插入、删除、查找等。

2. 测试数据结构在不同数据规模下的性能,如时间复杂度和空间复杂度。

3. 比较不同数据结构之间的性能差异,选择最适合实际应用的数据结构。

三、测试方法数据结构测试可以采用黑盒测试和白盒测试相结合的方法。

具体而言,可以采用以下几种测试方法:1. 功能测试:测试数据结构的基本操作是否能够正确执行,包括插入、删除、查找等。

2. 边界测试:测试数据结构在边界条件下的行为,如空数据结构、只有一个元素的数据结构等。

3. 性能测试:测试数据结构在不同数据规模下的性能表现,如插入、删除、查找的时间消耗和内存占用等。

4. 压力测试:测试数据结构在大规模数据和高并发情况下的性能表现,如并发插入、删除、查找等。

5. 对比测试:比较不同数据结构之间的性能差异,选择最适合实际应用的数据结构。

四、测试步骤数据结构测试的步骤可以分为以下几个阶段:1. 确定测试需求:根据实际应用场景和需求,确定需要测试的数据结构和测试目标。

2. 设计测试用例:根据测试需求,设计一组充分而有效的测试用例,包括功能测试、边界测试、性能测试等。

3. 实施测试用例:按照设计的测试用例,执行测试,记录测试过程中的输入、输出和执行时间等关键信息。

4. 分析测试结果:根据测试记录和测试结果,分析数据结构的正确性和性能表现,找出潜在的问题和改进的空间。

5. 优化和改进:根据分析结果,对数据结构进行优化和改进,以提高其性能和效率。

6. 再次测试:对优化后的数据结构进行再次测试,验证改进效果和性能提升。

数据结构 所有章节测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构 所有章节测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构章节测验数据结构第一章测验一、单选题 (共100.00分)1. 在数据结构概念中,数据的基本单位是()A. 数据段B. 数据项C. 数据表D. 数据元素正确答案:D2. 在数据结构概念中,结构是描述()A. 数据项的类型B. 数据元素之间的关系C. 数据成员的先后顺序D. 数据对象的取值范围正确答案:B3. 在算法设计中,要求算法便于理解和修改是属于算法要求的()A. 正确性B. 可读性C. 健壮性D. 效率高正确答案:B4. 抽象数据类型ADT通过三方面描述,包括数据对象、数据操作和()A. 数据范围B. 数据判断C. 数据关系D. 数据来源正确答案:C5. 以下关于算法的描述,哪个是正确的()A. 算法可以没有输入B. 算法可以包含无限个执行步骤C. 算法可以没有输出D. 算法的每个步骤允许带有歧义的正确答案:A6. 在算法设计中,要求算法满足具体问题的需求是属于算法要求的()A. 正确性B. 可读性C. 健壮性D. 效率高正确答案:A7. 抽象数据类型ADT通过三方面描述,包括数据关系、数据操作和()A. 数据对象B. 数据来源C. 数据范围D. 数据判断正确答案:A8. 以下关于数据结构的描述,哪一个是正确的()A. 数据原子是数据的最小独立单位B. 数据元素是数据的最小独立单位C. 一个数据项可以包含若干个数据元素D. 不能被计算机程序识别和处理的信息集合,不能称为数据正确答案:D9. 设n为问题规模,以下程序的时间复杂度为()for (i=1; i<=10000; i++) for (j=1; j<=n; j++) a = a + 1;A. O(1)B. O(n)C. O(10000n)D. O(n2)正确答案:B10. 设n为问题规模,以下程序的时间复杂度为() for (i=1; i< POW(2, n); i++) //POW(x, y)函数表示x的y 次幂a = a+100;A. O(n)B. O(2n)C. O(n!)D. O(2n)正确答案:D数据结构第二章测验一、单选题 (共100.00分)1. 以下结构中,哪一个是属于逻辑结构()A. 线性表B. 顺序表C. 单链表D. 循环链表正确答案:A2. 已知顺序表包含1000个数据,现在第88号位置插入新的数据,需要移动的数据个数为()A. 88B. 87C. 912D. 913正确答案:D3. 若线性表最常用的操作是存取第i个元素及其后继的值,则最节省操作时间的存储结构是()A. 单链表B. 双链表C. 单循环链表D. 顺序表正确答案:D4. 以下结构中,哪一个是属于物理结构()A. 线性表B. 栈C. 单链表D. 队列正确答案:C5. 已知顺序表包含100个数据,现在要删除第99号位置的数据,需要移动的数据个数为()A. 99B. 100C. 1D. 2正确答案:C6. 已知指针p指向单链表L的某个结点,判断p指向的结点是尾结点的条件是()A. if (p->next>p)B. if (p->next==NULL)C. if (p->nextD. if (p->data==0)正确答案:B7. 以下描述哪个是正确的()A. 线性表的数据元素的存储位置一定是连续的B. 顺序表的数据元素的存储位置一定是连续的C. 链表的数据元素的存储位置一定不是连续的D. 线性表的数据元素的存储位置一定不是连续的正确答案:B8. 已知顺序表包含100个数据,先在第15号位置插入1个新数据,接着删除第3号位置的数据,需要移动的数据总个数为()A. 18B. 84C. 184D. 188正确答案:C9. 设某单链表包含10个结点,已知指针p指向第3个结点,指针q指向第4个结点,删除第4个结点的语句为()A. p->next = q->next; free(q);B. q->next = p; free(p);C. p = q->next; free(p);D. q = p->next; free(q);正确答案:A10. 设某单链表包含10个结点,已知指针s指向一个新结点,指针p指向第4个结点,现在第4个结点之后插入这个新结点的两个语句为()A. p->next = s; s->next = p->next;B. s->next = p->next; p->next = s;C. p->next = s->next; s->next = p;D. s->next = p; p->next = s->next;正确答案:B数据结构第三章测验一、单选题 (共100.00分)1. 以下结构中,哪一个是属于逻辑结构()A. 顺序栈B. 链栈C. 队列D. 循环队列正确答案:C2. 已知栈S为空,数据1、2、3、4依次逐个进入栈S,则栈顶数据为()A. 1B. 2C. 3D. 4正确答案:D3. 已知队列为空,数据1、2、3、4依次逐个进入队列,则出队的数据顺序为()A. 1234B. 4321C. 1324D. 2413正确答案:A4. 栈的最大特点是()A. 先进先出B. 后进先出C. 无限递归D. 有限递归正确答案:B5. 队列的最大特点是()A. 先进先出B. 后进先出C. 无限递归D. 有限递归正确答案:A6. 已知栈包含10元素,其中存放在栈底是第1号元素,则第10号元素可以通过()进行访问A. 栈底B. 栈中C. 栈尾D. 栈顶正确答案:D7. 以下描述正确的是()A. 顺序栈可以直接访问栈内任意位置的元素,而链栈不可以B. 链栈可以直接访问栈内任意位置的元素,而顺序栈不可以C. 通过栈可以实现程序的递归算法D. 通过队列可以实现程序的递归算法正确答案:C8. 以下结构中,哪一个是属于物理结构()A. 栈B. 队列C. 链队列D. 线性表正确答案:C9. 使用长度为10的数组实现循环队列,则该队列最多存储数据个数为()A. 1B. 9C. 11.D.5正确答案:B10. 在队列中,允许插入的一端称为()A. 队头B. 队中C. 队指针D. 队尾正确答案:D数据结构第四章测验一、单选题 (共100.00分)1. 以下结构中,哪一个是属于逻辑结构()A. 顺序表B. 链栈C. 循环队列D. 串正确答案:D2. 以下哪一种是串在计算机中的常见表示方式()A. 定长顺序B. 堆分配C. 块链D. 前三种都是正确答案:D3. 在数据结构中,串可以等同于()的处理A. 整数串B. 浮点数串C. 字符串D. 多种类型的数组正确答案:C4. 以下哪一种是串匹配的常用算法()A. 普里姆算法B. 克鲁斯卡尔算法C. KMP算法D. 关键路径算法正确答案:C5. 已知主串为abcbcaddabc,模式串为cad,假设串位置从1开始,则串匹配位置是()A. 3B. 5C. 7D. 不存在正确答案:B6. 已知模式串为abaab,则next数组为()A. 1122B. 22312C. 1212D. 1112正确答案:A7. 已知串S的内容为1+2+3,以下描述哪一个是正确的()A. 串S的长度是6B. 串S的运算结果是6C. 整数1是串S的子串D. 符号+是串S的子串正确答案:D8. 以下描述哪一个是正确的()A. 串是字符有限序列B. 串是整数、浮点数、字符等多种数据的有限序列C. 只包含空格的串称为空串D. 串只能使用顺序表存储正确答案:A9. 串的长度是指()A. 串中包含不同字母的个数B. 串中所含字符的个数C. 串中包含不同字符的个数D. 串中包含非空格的字符的个数正确答案:B10. 串函数Sub(S, x, y)表示在串S中,从x位置开始,取出y个字符,串位置从1开始计算。

数据结构第2版习题答案—

数据结构第2版习题答案—

数据结构(C语言版)(第2版)课后习题答案xx2015.3目录第1章绪论..................................................................................错误!未定义书签。

第2章线性表 ..............................................................................错误!未定义书签。

第3章栈和队列...........................................................................错误!未定义书签。

第4章串、数组和广义表 ...........................................................错误!未定义书签。

第5章树和二叉树.......................................................................错误!未定义书签。

第6章图........................................................................................错误!未定义书签。

第7章查找 ..................................................................................错误!未定义书签。

第8章排序..................................................................................错误!未定义书签。

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

数据结构随堂测验带答案

数据结构随堂测验带答案

第1次测验1.算法的时间复杂度取决于(C)A.问题的规模 B. 待处理数据的初态 C. A和B2.从逻辑上可以把数据结构分为( C )两大类。

A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构3.以下属于逻辑结构的是( C )。

A.顺序表 B. 哈希表 C.有序表 D. 单链表4.下述哪一条是顺序存储结构的优点?( A )A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示5.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(A )存储方式最节省时间。

A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表6.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(D )存储方式最节省运算时间。

A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。

则采用(D )存储方式最节省运算时间。

A.单链表B.双链表C.单循环链表D.带头结点的双循环链表8.链表不具有的特点是(B )A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比9.对于顺序表,访问第i位置结点和增加、删除结点的时间复杂度为(C )。

A. O(n) O(n)B. O(n) O(1)C. O(1) O(n)D. O(1) O(1)10.线性表以方式存储时,访问第i位置元素的时间复杂性为(C )A.O(i) B.O(1)C.O(n)D.O(i-1)11.下面程序段的时间复杂度是O(n) 。

int i=1,k=100;while(i<n){ k=k+1;i+=2;}12.在单链表L中,指针p所指结点有后继结点的条件是:________。

13.长度为n的顺序表,在其第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动个元素,删除第i个元素(1≤i≤n)时,需向前移动__ 个元素。

数据结构(第二版)复习题及答案

数据结构(第二版)复习题及答案

复习题一、选择:1、数据的基本单位是( B ),在计算机中作为整体进行处理A、数据项B、数据元素C、数据对象D、数据结构2、在一个顺序表中,如果第一个元素的存储地址为100,每个元素的长度为2,则第5个元素的地址为(B )计算过程:100+(5-1)*2=108A、110B、108C、100D、1203、链表不具备的特点是(A )A、可以随机访问B、插入删除不必移动元素C、不必事先估计存储空间D、所需空间与其长度成正比4、在一个长度为n的顺序表的第i个元素前插入一个元素时,需要向后移动( A )个元素A 、n - i +1 B、n – i C、n – i – 1 D、i5、在一个单链表中,如果在P所指的结点后插入S所指结点,则执行( B )A、s ->next = p p -> next =sB、s ->next =p ->next p ->next = sC、s -> next = p -> next p = sD、p - >next = s s->next =p6、删除一个长度为n的顺序表的第i个元素,需要向前移动( B )个元素A 、n - i +1 B、n – i C、n – i – 1 D、i7、从一个具有n个结点的单链表中查找其值为x的结点,在查找成功的情况下,需要比较( D )个结点A 、n B、n /2 C、(n – 1)/2 D、(n + 1)/28、在一个单链表中,q是p 所指结点的前趋结点,如果在q和p之间插入s结点,则执行( C )A、s->next = p->next p->next =sB、p->next =s>next s->next = pC、q->next =s s->next = pD、p->next =s s->next = q9、使带头结点的单链表为空的判定条件是( B )A、head = NULLB、head -> next = = NULLC、head - >next = headD、head ! = NULL10、在一个具有n个结点的有序链表中插入一个新结点并仍然有序的时间复杂度是( B )A、O(1)B、O(n)C、O(n2)D、O(nlog2n)11、如果1,2,3依次进栈,则出栈顺序不可能是( C )A、3 2 1B、2 1 3C、3 1 2D、1 3 2解析:1 2 3分别进栈→3 2 1分别出栈1进2进→2出1出3进→ 3出1进→1出2进3进→3出2出12、非空的循环单链表head的尾结点P满足( C )A、p -> next = = NULLB、P = = NULLC、P - >next = = headD、p = = head13、建立有序单链表的时间复杂度为( C )A、O(1)B、O(n)C、O(n2)D、O(nlog2n)14、不带头结点的单链表为空的判定条件是(A )A、head = NULLB、head -> next = = NULLC、head - >next = headD、head ! = NULL15、判断链队为空的条件是( A )A、Q->front = = Q->rearB、Q->front != Q->rearC、Q->front = = (Q->rear +1)% nD、Q->front != (Q->rear +1)% n16、循环队列的头尾指针分别为front和rear,则循环队列为满的条件是( C )A、Q->front = = Q->rearB、Q->front != Q->rearC、Q->front = = (Q->rear +1)% nD、Q->front != (Q->rear +1)% n17、进队序列为1,2,3,4,进行1次出队运算后,队头结点为( B )A、1B、2C、3D、418、在一个单链表中,删除P所指结点的后继结点,应执行( A )A、p ->next = p->next ->nextB、p = p->next; p ->next = p->next ->nextC、p ->next = p ->nextD、p = p ->next ->next19、链表的优点是(C )A、便于随机存取B、花费的存储空间比顺序表少C、便于插入与删除D、数据元素的物理顺序与逻辑顺序相同20、在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是( B )A、f->next=s;f=s;B、r->next=s;r=s;C、s->next=r;r=s;D、s->next=f;f=s;21、设高度为h的二叉树上只有度为0和度为2的结点,则此二叉树中包含的结点数至少为( B )个A、2hB、2h-1C、2h+1D、h+122、一个栈的进栈序列是1,2,3,4,则出栈序列不可能是(C )A、1 2 3 4B、4 3 2 1C、4 1 3 2D、3 2 4 123、采用邻接表存储的图的深度优先搜索遍历类似于二叉树的(A )A、先序遍历B、中序遍历C、后序遍历D、层次遍历24、从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行(D )A、x=HS; HS= HS->nextB、x=HS->data;C、HS= HS->next; x=HS->dataD、x=HS->data; HS= HS->next25、具有6个结点的无向图至少有( A )条边才能形成连通图A、5B、6C、7D、826、在链队Q中,插入S所指结点需执行的命令是( B )A、Q->front ->next =s ; f=sB、Q->rear->next=s; Q.rear=sC、s->next =Q->rear Q->rear=sD、S->next=Q->front Q->front =s;27、如果二叉树的先序遍历序列为ABDGCEFH,中序遍历序列为DGBAECHF,则后序遍历序列为( D )A、BDGCEFHAB、GDBECFHAC、BDGAECHFD、GDBEHFCA28、具有5个顶点的无向完全图有( A )条边A、10B、24C、25D、2029、采用邻接表存储的图的广度优先搜索遍历类似于二叉树的(D )A、先序遍历B、中序遍历C、后序遍历D、层次遍历30、在链队Q中,删除一个结点需执行的命令是(B )A、Q->rear = Q->front->nextB、Q->rear->next= Q->rear->next->nextC、Q->front->next = Q->front->next->nextD、Q->front= Q->rear->next31、在解决计算机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,主机将要输出的数据依次写入缓冲区,打印机则从缓冲区取出数据打印,该缓冲区使用(B )结构A、堆栈B、队列C、数组D、树32、在有向图的邻接表存储结构中,顶点v在表结点中出现的次数是( B )A、顶点v的度B、顶点的出度C、顶点v的入度D、依附于顶点V的边数33、将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点编号,根结点编号为1,则编号为49的结点的左孩子为(B )A、99B、98C、50D、4834、二维数组SA中,每个元素的长度为3个字节,行下标从0到7,列下标从0到9,从首地址SA开始连续存放在存储器中,该数组按列存放,元素A[4][7]的地址为(B )A、SA +141 B、SA+180 C、SA+222 D、SA+22535、数组A中,每个元素的长度是3字节,行下标i从1到8,列下标j从1到10,从首地址开始连续存放在存储器内,存放该数组至少需要的单元数是( B )。

数据结构测试

数据结构测试

数据结构测试一、引言数据结构是计算机科学中非常重要的概念,它涉及到如何组织和存储数据,以及如何进行数据操作和处理。

数据结构的设计与实现直接影响到程序的效率和性能。

本文将对数据结构进行测试,并详细介绍测试的目的、方法、结果和分析。

二、测试目的1. 确保数据结构的实现符合设计要求和预期功能。

2. 评估数据结构的性能和效率。

3. 发现和修复潜在的问题和错误。

三、测试方法1. 单元测试:对数据结构的每一个功能模块进行独立测试,确保其正确性和稳定性。

2. 性能测试:通过摹拟大规模数据集和复杂操作,评估数据结构的性能。

3. 边界测试:测试数据结构在极端情况下的表现,如空数据、最大值、最小值等。

4. 异常测试:测试数据结构在异常输入下的鲁棒性和错误处理能力。

四、测试结果与分析1. 单元测试结果:- 功能模块A:通过了所有测试用例,符合预期功能。

- 功能模块B:在某些极端情况下浮现了错误,需要修复。

- 功能模块C:性能较差,需要优化。

- ...2. 性能测试结果:- 数据结构A:在处理大规模数据集时,平均时间复杂度为O(nlogn),性能良好。

- 数据结构B:在复杂操作下,浮现了内存泄漏的问题,需要进行内存管理优化。

- 数据结构C:在处理大量并发请求时,性能下降明显,需要进行并发优化。

- ...3. 边界测试结果:- 数据结构A:在空数据集下,能够正确处理,并返回预期结果。

- 数据结构B:在最大值情况下,浮现了溢出错误,需要进行溢出处理。

- 数据结构C:在最小值情况下,浮现了性能瓶颈,需要进行性能优化。

- ...4. 异常测试结果:- 数据结构A:在非法输入下,能够正确捕获异常,并进行错误处理。

- 数据结构B:在异常情况下,浮现了崩溃错误,需要增加错误处理机制。

- 数据结构C:在异常输入下,浮现了数据丢失问题,需要进行数据保护措施。

- ...五、测试总结与改进计划根据测试结果和分析,可以得出以下结论:1. 数据结构的功能模块A、B、C等各有优劣,需要进一步优化和改进。

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

void PreOrderTraverse(BiTree T, ElemType x,BiTree parent )
{
if (T)
{ if (T-> data==x)
if(parent) printf(parent->data);
else printf("无双亲");
return YES;
}
if(!findparent1(T->lchild,x,T))
return findparent1(T->rchild,x,T) ;
else return YES;
{ int pos,len1;
if(len>0)
{ pos=start2;
while(b[pos]!=a[start1]) pos++;
T=(BiTree)malloc(sizeof(BiNode));
T->data=a[start1];
DFS: 1 2 3 4 5 6
BFS: 1 2 3 4 6 5
3. 对上图所示的带权无向图,按普里姆算法求其最小生成树(写出求解的详细过程示意图)。(表6分,画出生成树2分)
1 2 3 4 5 U V-U k adjvex
lowcost 0
2 0
7 0
5 0
6 {0} {1,2,3,4,5} 1 adjvex
结构0分,邻接表、深度、广度各3分)
#define MAX_VERTEX_NUM 20
typedef struct ArcNode
{int adjvex;
struct ArcNode * nextarc;
InfoType * info;
知是一种快乐,好奇心知识的萌芽。——培根
else printf("无双亲");
PreOrderTraverse(T->lchild,x,T) ;
知是一种快乐,好奇心知识的萌芽。——培根
PreOrderTraverse(T->rchild,x,T) ;
}
}
可运行的程序:
#include<stdio.h>
}
else return NO;
}
int main()
{
int len,find;
len=strlen(a);
BiTree T;
createBiTree(0,0,len,T);
find=findparent1(T, 'M',NULL );
if (T->lchild&&T->lchild->data==x)
{ printf("%c",T->data);return YES; }
if (T->rchild&&T->rchild->data==x)
{ printf("%c",T->data); return YES; }
lowcost
0
0
0 5
2
0 {0,1,2,3,5} {4} 4 adjvex
lowcost
0
0
0
0
0 {0,1,2,3,4,5} {}
4.已知某电文中共出现了8种不同的字母,每个字母出现的频率分别为A:8,B:2,C:3,D:2,E:6,F:15,G:9,H:13,现在对这段电文用二进制进行哈夫曼编码(要求画出哈夫曼树)。哈夫曼树6分,编码3分
BiTree T;
createBiTree(0,0,len,T);
find=findparent2(T, 'A' );
if(find==0) printf("没有该结点\n");
return 0;
}
方法三:
BiTree findparent3(BiTree T, ElemType x)
5.对于如下图所示的事件结点网络,求出各活动可能的最早开始时间和允许的最晚完成时间,并问哪些活动是关键活动。两张表6分,结论3分
ve vl 1 0 0 2 7 13 3 6 6 4 5 8 5 12 18 6 19 19 7 17 20 10 22 22
1-2 1-3 1-4 2-5 3-5 3-6 4-6 2-7 4-7 5-10 6-10 7-10 e 0 0 0 7 6 6 5 7 5 12 19 17 l 6 0 3 13 14 6 14 17 8 18 19 20 6.Next3分,过程4分
}
else T=NULL;
}
Status findparent1(BiTree T, ElemType x,BiTree parent )
//parent为 T的双亲,初值为空
{
if (T)
{ if (T-> data==x)
{ if(parent) printf("%c",parent->data);
}
int main()
{
int len;
BiTree find;
len=strlen(a);
BiTree T;
ElemType x='A';
createBiTree(0,0,len,T);
find=findparent3(T,x );
lowcost
0 1
4 0
5 1
5 0
6 {0,1} {2,3,4,5} 2 adjvex
lowcost
0
0 2
3 2
4 0
6 {0,1,2} {3,4,5} 3 adjvex
lowcost
0
0
0 2
4 3
3 {0,1,2,3} {4,5}
5 adjvex
{
if (T)
{ if (T->lchild&&T->lchild->data==x) printf(T->data);
if (T->rchild&&T->rchild->data==x) printf(T->data);
PreOrderTraverse(T->lchild,x) ;
}ArcNode ;
typedef struct VNode
{ VertexType data; // 顶点信息
ArcNode * firstarc; // 指向第一条依附顶点的弧的指针
}VNode, AdjList[MAX _VERTEX_NUM ];
if(find==T&&T->data==x)
printf("没有双亲");
else if(find==NULL) printf("没有该结点\n");
else printf("%c",find->data);
return 0;
}
if(find==0) printf("没有该结点\n");
return 0;
}
方法二:
Status findparent2(BiTree T, ElemType x)
{
if (T)
{ if(T->data==x)
{ printf("没有双亲");return YES; }
return T;
p=findparent3(T->lchild,x);
if(!p)
return findparent3(T->rchild,x) ;
else return p;
}
return NULL;
知是一种快乐,好奇心知识的萌芽。——培根
typedef struct BiTNode
{ TElemType data;
struct BiTNode *lchild, *rchild; //左右孩子指针
} BiTNode, *BiTree;
void PreOrderTraverse(BiTree T, ElemType x)
typedef struct
{ AdjList vertices;
int vexnum, arcnum; // 图的当前顶点数和弧数
int kind; // 图的种类标志
} ALGraph;;
#include<string.h>
#define YES 1
#define NO 0
char a[]="ABDCEF",b[]="BDAEFC"; //a为先序序列,b为中序序列
typedef int Status;
typedef char ElemType;
相关文档
最新文档