数据结构习题2011级

合集下载

2011年数据结构本科试题及答案

2011年数据结构本科试题及答案

武汉大学计算机学院2011年-2012学年第一学期“数据结构”考试试题(A)要求:所有的题目的解答均写在答题纸上,需写清楚题目的序号。

每张答题纸都要写上姓名和学号。

一、单项选择题(共20小题,每小题2分,共40分)1. 下列各选项中属于逻辑结构的是。

A.哈希表B.有序表C.单链表D.顺序表2. 对于数据结构,以下叙述中不正确的是。

A.数据的逻辑结构与数据元素本身的形式和内容无关B.数据的逻辑结构是数据的各数据项之间的逻辑关系C.数据元素是数据的基本单位D.数据项是数据的最小单位3. 某算法的时间复杂度为O(n2),表明该算法的。

A.问题规模是n2B.执行时间等于n2C.执行时间与n2成正比D.问题规模与n2成正比4. 通常在单链表中增加一个头节点,其目的是为了。

A.使单链表至少有一个节点B.标识表节点中首节点的位置C.方便单链表运算的实现D.说明单链表是线性表的链式存储5. 删除某个双链表中的一个节点(非首、尾节点),需要修改个指针域。

A.1B.2C.3D.46. 栈和队列是两种不同的数据结构,但它们中的元素具有相同的。

A.抽象数据类型B.逻辑结构C.存储结构D.运算7. 元素a、b、c、d、e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有的元素都出栈,则所有可能的出栈序列中,以元素d开头的序列个数是。

A.3B.4C.5D.68. 设环形队列中数组的下标是0~N-1,其头尾指针分别为f和r(f指向队列中队头元素的前一个位置,r指向队尾元素的位置),则其元素个数为。

A.r-fB.r-f-1C.(r-f)%N+1D.(r-f+N)%N9. 已知循环队列存储在一维数组A[0..n-1]中,且队列非空时front和rear分别指向队头元素和队尾元素。

若初始时队列空,且要求第一个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是。

A.0,0B.0,n-1C.n-1,0D.n-1,n-110. 对于n阶(n≥2)对称矩阵,采用压缩方法以行序优先存放到内存中,则需要个存储单元。

2011年江苏省《数据结构》期末考试试题及答案知识大全

2011年江苏省《数据结构》期末考试试题及答案知识大全

14、一棵左子树为空的二叉树在前序线索化后,其空指针域个数为
A.0 B.1 C.2 D.不确定
15、如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用 B 。
A.只有表头指针没有表尾指针的循环单链表
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
26、数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
27、非空的循环单链表head的尾结点(由p所指向)满足 C 。
A.p->next == NULL B.p == NULL
43、非空的循环单链表head的尾结点(由p所指向)满足 C 。
A.p->next == NULL B.p == NULL
C.p->next ==head D.p == head
44、若某线性表中最常用的操作是取第i个元素和找第i个元素的前驱,则采用( )存储方法最节省时间
20、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
(2)A.空间复杂度和时间复杂度 B.正确性和简明性
C.可读性和文档性 D.数据复杂性和程序复杂性
A 顺序表 B单链表 C 双链表 D单循环链表
45、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
46、深度为k的完全二叉树所含叶结点的个数最多为( B)。

2011年10月数据结构试题及答案

2011年10月数据结构试题及答案

全国2011年10月高等教育自学考试-----数据结构试题一、单项选择题(本大题共15小题,每小题2分,共30分)1、在数据的逻辑结构中,树结构和图结构都是()A.非线性结构B.线性结构C.动态结构D.静态结构2.在一个长度为n的顺序表中插入一个元素的算法的时间复杂度为()A.O(1)B.O(log n)C.O(n)D.O(n2)3.指针p1和p2分别指向两个无头结点的非空单循环链表中的尾结点,要将两个链表链接成一个新的单循环链表,应执行的操作为()A.p1->next=p2->next;p2->next=p1->next;B. p2->next=p1->next;p1->next=p2->next;C. p=p2->next; p1->next=p;p2->next=p1->next;D. p=p1->next; p1->next= p2->next;p2->next=p;4.设栈的初始状态为空,入栈序列为1,2,3,4,5,6,若出栈序列为2,4,3,6,5,1,则操作过程中栈中元素个数最多时为()A.2个B.3个C.4个D.6个5.队列的特点是()A.允许在表的任何位置进行插入和删除B.只允许在表的一端进行插入和删除C.允许在表的两端进行插入和删除D.只允许在表的一端进行插入,在另一端进行删除6.一个链串的结点类型定义为﹟define NodeSize 6typedef struct node{char data[NodeSize];struct node*next;}LinkStrNode;如果每个字符占1个字节,指针占2个字节,该链串的存储密度为()A.1/3B.1/2C.2/3D.3/47.广义表A=(a,B,(a,B,(a,B,……)))的长度为()A.1B.2C.3D.无限值8.已知10×12的二维数组A,按“行优先顺序”存储,每个元素占1个存储单元,已知A[1][1]的存储地址为420,则A[5][5]的存储地址为()A.470B.471C.472D.4739.在一棵二叉树中,度为2的结点数为15,度为1的结点数为3,则叶子结点数为()A.12B.16C.18D.2010.在带权图的最短路径问题中,路径长度是指()A.路径上的顶点数B.路径上的边数C.路径上的顶点数与边数之和D.路径上各边的权值之和11.具有n个顶点、e条边的无向图的邻接矩阵中,零元素的个数为()A.eB.2eC.n2-2eD.n2-112.要以O(n log n)时间复杂度进行稳定的排序,可用的排序方法是()A.归并排序B.快速排序C.堆排序D.冒泡排序13.若希望在1000个无序元素中尽快求得前10个最大元素,应借用()A.堆排序B.快速排序1 / 6C.冒泡排序D.归并排序14.对有序表进行二分查找成功时,元素比较的次数()A.仅与表中元素的值有关B.仅与表的长度和被查元素的位置有关C.仅与被查元素的值有关D.仅与表中元素按升序或降序排列有关15.散列文件是一种()A.顺序存取的文件B.随机存取的文件C.索引存取的文件D.索引顺序存取的文件二、填空题(本大题共10小题,每小题2分,共20分)16.若一个算法中的语句频度之和为T(n)=3n3-200nlog2n+50n,则该算法的渐近时间复杂度为__________.17.在单链表中,除了第1个元素结点外,任一结点的存储位置均由_____________指示。

2011山西省数据结构(C++)试题及答案

2011山西省数据结构(C++)试题及答案

1、下列序列中,执行第一趟快速排序后得到的序列是( A )。

A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]2、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A )。

A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;C)p->next=s->next; s->next=p D)p->next=s; s->next=q;3、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。

A)顺序表示法 B)单字符为结点的单链表表示法C)等量分块表示法 D)不等量分块表示法4、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。

A)顺序表示法 B)单字符为结点的单链表表示法C)等量分块表示法 D)不等量分块表示法5、队列的操作的原则是( A )。

A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除6、n个顶点的图的最小生成树必定( D ),是不正确的描述。

A)不唯一 B)权的总和唯一C)不含回路 D)有n条边7、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。

A) hs->next=s; B) s->next=hs->next; hs->next=s;C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;8、下面关于线性表的叙述中,错误的是哪一个?( D )A)线性表采用顺序存储,必须占用一片连续的存储单元。

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

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

数据结构课后习题第2章

数据结构课后习题第2章

2. 指针 P 指向不带头结点的线性链表 L 的首元素的条件是( )。
A.P= =L
C.P-﹥next==L
B.L-﹥Next==P
D.P-﹥next==NULL
3. 指针 p 指向带头结点的单循环链表 L 的首元素的条件是( )。
A.P= =L
C.P-﹥next==L
B.L-﹥Next==P
D.P-﹥next==NULL
网络工程 2011 级 1 班、计算机科学与技术 2011 级 2 班《算法与数据结构》课后习题(第 2 章)
2011 级 计科 (网工)
题号
得分

【课后习题】第 2 章 线性表
班 学号:
一、判断题(如果正确,在题号前打“”,否则打“”。每题 2 分,共 10 分)

( ) 1. 线性表若采用顺序存储表示时所有结点之间的存储单元地址必须连续。 ( ) 2. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。 ( ) 3. 如果某个数据结构的每一个元素都是最多只有一个直接前驱,则必为线性结构。 ( ) 4. 线性表的逻辑顺序与物理顺序总是一致的。 ( ) 5. 线性表的长度是指它所占存储空间的大小。
二、填空题(每空 1.5 分,共 21 分)
1. 从逻辑结构看,线性表是典型的
2. 在一个长度为 n 的向量中在第 i(1≤i≤n+1)个元素之前插入一个元素时,需向后移动
个元素,算法的时间复杂度为
3. 在一个长度为 n 的向量中删除第 i(1≤i≤n)个元素时,需向前移动
算法的时间复杂度为


4. 若长度为 n 的线性表采用链式存储结构,在其第 i 个结点前插入一个新的元素的算法的

青岛理工大学2011年数据结构A卷考试题答案

青岛理工大学2011年数据结构A卷考试题答案

2010~_2011_学年第 2 学期数据结构课程试卷标准答案及评分标准A( √ )/B( ) 卷专业计算机科学与技术、软件、网络班级计算091-3、网络091-2、软件091-2 一、单项选择题(1*30=30分)1A 2D 3D 4B 5B 6C 7C 8D 9A 10B 11B 12A 13C 14B 15B 16B 17A18B 19C 20C 21B 22C 23B 24D 25B 26C 27A 28B 29B 30B二、判断题(1*10=10分)1 × 2√ 3 × 4 √ 5 × 6√ 7× 8 × 9 × 10×三、综合题(45分)1.二叉排序树如下所示:(8分)查找成功情况下的平均查找长度为:(1+2*2+3*2+4*2+5*3+6*2)/12=23/62.二叉树为:(5分)线索二叉树(5分)红色带箭头的为线索3.哈夫曼树如下(5分)带权路径长度为:WPL=(4+6+8+10)*4+(15+20)*3+(23+35)*2=333 (2分)成功查找情况下的平均查找长度为:ASL=(10*1+3*3)/13=19/135.(1)邻接表如下(2分)(2)深度优先遍历序列:1,2,3,4,5(2分)广度优先遍历序列:1,2,4,5,3(2分)(3)最小生成树:(2分)最小生成树各边上的权值之和为:10五、算法设计题(7+8=15分)1.(共7分)void MergeList_L(LinkList &HA,LinkList &HB,LinkList &HC){ //按值递增排序的单链表LA,LB,归并为LC后也按值递增排序pa=HA-->next; pb=HB-->next; Lc=pc=HA; //初始化(1分)while(pa&&pb) //将pa 、pb结点按大小依次插入C中{ if(pa->data<=pb->data) (1分){pc->next=pa; pc=pa; pa=pa->next;} (2分) else {pc->next=pb; pc=pb; pb=pb->next} (2分) }pc->next = pa?pa:pb ; //插入剩余段(1分)free(HB); //释放Lb的头结点} //MergeList_L2.二叉链表存储的二叉树的层次遍历的算法:(共8分)void BFSTraverse(BiTree T) {InitQueue(Q); // 置空的辅助队列Qif (T) EnQueue(Q, T); // 根结点入队列(1分)while (!QueueEmpty(Q)) { (1分)DeQueue(Q, p); // 队头元素出队并置为p (1分)Visit(p); (1分)if (p->Lchild)EnQueue(Q, p->Lchild); // 左子树根入队列(2分)if (p->Rchild)EnQueue(Q, p->Rchild); // 右子树根入队列(2分)} // while}。

2011数据结构试卷A

2011数据结构试卷A

11、具有12个关键字的有序表,折半查找的平均查找长度为()。

A.3.1 B.4 C.2.5 D.512、对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为()。

A.(N+1)/2 B.N/2 C.N D.[(1+N)×N ]/213、在下列排序算法中,()算法的时间复杂度与初始排序无关。

A.直接插入排序B.冒泡排序C.快速排序D.直接选择排序14、对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15},则采用的是()排序。

A.选择B.快速C.希尔D.冒泡15、有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为()。

A.-1,4,8,9,20,7,15,7 B.-1,7,15,7,4,8,20,9C.-1,4,7,8,20,15,7,9 D.A,B,C均不对二、判断题(每空1分,共10分)1、健壮的算法不会因非法的输入数据而出现莫名其妙的状态。

()2、线性表的特点是每个元素都有一个前驱和一个后继。

()3、即使对不含相同元素的同一输入序列进行两组不同的合法的入栈和出栈组合操作,所得的输出序列也一定相同。

()4、循环队列也存在空间溢出问题。

()5、一个稀疏矩阵A m*n采用三元组形式表示,若把三元组中有关行下标与列下标的值互换,并把m和n的值互换,就完成了A m*n的转置运算。

()6、对一棵二叉树进行层次遍历时,应借助于一个栈。

()7、在任意一棵非空二叉排序树,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉排序树相同。

()8、一个有向图的邻接表和逆邻接表中结点的个数可能不等。

()9、当改变网上某一关键路径上任一关键活动后,必将产生不同的关键路径。

()10、在9阶B-树中,除叶子以外的任意结点的分支数介于5和9之间。

()三、填空题(每空1分,共10分)1、数据结构中评价算法的两个重要指标是_______。

2011年数据结构A卷考试题

2011年数据结构A卷考试题
3.折半查找只适合用于有序表,包括有序的顺序表和有序的链表。( )
4.栈和队列的存储方式,既可以是顺序方式,又可以是链式方式。()
5.在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要n-1条弧。()
6.在索引顺序表中,实现分块查找,在等概率查找情况下,其平均查找长度不仅与表中元素个数有关,而且与每块中元素个数有关。
30.对基本有序的n个记录的表作快速排序算法的时间复杂度是(B)。
A.O(n) B.O(n2) C.O(nlogn) D.O(n3)
二、判断题(1*10=10分)
1.算法的时间复杂度是问题规模的函数,与输入的初始状态无关。()
2.链表是采用链式存储结构的线性表,进行插ห้องสมุดไป่ตู้、删除操作时,在链表中比在顺序存储结构中效率高。( )
五、算法设计题(7+8=15分)
1.已知两个整数集合A和B,它们的元素分别依元素值递增有序存放在两个单链表HA和HB中,编写一个函数求出这两个集合的并集C,并要求表示集合C的链表的结点仍按照元素值递增有序存放且使用原空间。
2.试用队列结构实现二叉链表存储的二叉树的层次遍历的算法。
青岛理工大学试卷纸A共6页第4页
()
7.对一棵二叉排序树按先序方法遍历得出的结点序列是从小到大的序列。( )
8.在n个结点的无向图中,若边数大于n-1,则该图必是连通图。()
9.在AOE图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短。()
10.一棵有n个结点的二叉树,从上到下,从左到右用自然数依次给予编号,则编号为i的结点的左儿子的编号为2i(2i< n),右儿子是2i+1(2i+1<n)。()
16.用邻接表存储的图进行广度优先遍历时,通常是采用(B)结构来实现算法的。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.数据的四种存储结构是( )A.顺序存储结构、链接存储结构、索引存储结构和散列存储结构B.线性存储结构、非线性存储结构、树型存储结构和图型存储结构C.集合存储结构、一对一存储结构、一对多存储结构和多对多存储结构D.顺序存储结构、树型存储结构、图型存储结构和散列存储结构2.若对某线性表最常用的操作是在最后一个结点之后插入一个新结点或删除最后一个结点,要使操作时间最少,下列选项中,应选择的存储结构是( )A.无头结点的单向链表B.带头结点的单向链表C.带头结点的双循环链表D.带头结点的单循环链表3.若带头结点的单链表的头指针为head,则判断链表是否为空的条件是( )A.head=NULLB.head->next=NULLC.head!=NULLD.head->next!=head7.若一棵二叉树的前序遍历序列与后序遍历序列相同,则该二叉树可能的形状是( )A.树中没有度为2的结点B.树中只有一个根结点C.树中非叶结点均只有左子树D.树中非叶结点均只有右子树8.若根结点的层数为1,则具有n个结点的二叉树的最大高度是( )A.nB.C. +1D.n/29.在图G中求最小生成树可以采用的算法是( )A.迪杰斯特拉(Dijkstra)算法B.克鲁斯卡尔(Kruskal)算法C.深度优先遍历(DFS)算法D.广度优先遍历(BFS)算法10.下图G=(V,E)是一个带权连通图,G的最小生成树的权为( )A.15B.16C.17D.1811.在下图中,从顶点1出发进行深度优先遍历可得到的序列是( )A.1 2 3 4 5 6 7B.1 4 2 6 3 7 5C.1 4 2 5 3 6 7D.1 2 4 6 5 3 712.如果在排序过程中不改变关键字相同元素的相对位置,则认为该排序方法是( )A.不稳定的B.稳定的C.基于交换的D.基于选择的13.设有一组关键字(19, 14, 23, 1,6,20, 4,27, 5,11, 10, 9),用散列函数H(key)=key%13构造散列表,用拉链法解决冲突,散列地址为1的链中记录个数为( )A.1B.2C.3D.414.已知二叉树结点关键字类型为字符,下列二叉树中符合二叉排序树性质的是( )16.下面程序段的时间复杂度为___________。

sum=1;for(i=0;sum<n;i++)sum+=1;18.使用一个100个元素的数组存储循环队列,如果采取少用一个元素空间的方法来区别循环队列的队空和队满,约定队头指针front等于队尾指针rear时表示队空。

若为front=8,rear=7,则队列中的元素个数为___________。

19.3个结点可以组成___________种不同树型的二叉树。

20.用5个权值{3, 2,4,5,1}构造的哈夫曼(Huffman)树的带权路径长度是___________。

21.若无向图G中有n个顶点m条边,采用邻接矩阵存储,则该矩阵中非0元素的个数为___________。

22.影响排序效率的两个因素是关键字的___________次数和记录的移动次数。

24.若两个关键字通过散列函数映射到同一个散列地址,这种现象称为___________。

26.要在[0..n-l]的向量空间中建立两个栈stackl和stack2,请回答:(1)应该如何设计这两个栈才能充分利用整个向量空间?(2)若stackl的栈顶指针为topl,stack2的栈顶指针为top2,如果需要充分利用整个向量空间,则:栈stackl空的条件是:___________;栈stack2空的条件是:___________;栈stackl和栈stack2满的条件是:___________。

28.已知二叉树如下:请画出该二叉树对应的森林。

29.请回答下列问题:(1)英文缩写DAG的中文含义是什么?(2)请给出下面DAG图的全部拓扑排序。

30.已知线性表(a1,a2,a3...,an)按顺序存放在数组a中,每个元素均为整数,下列程序的功能是将所有小于0的元素移到全部大于等于0的元素之前。

例如,有7个整数的原始序列为(x,x,-x,-x,x,x,-x),变换后数组中保存的序列是(-x,-x,-x,x,x,x,x)。

请在程序处填入合适的内容,使其成为完整的算法。

f30(int a[],int n){ int k,m,temp;m= (1) ;while (a[m]<0 &&m<n)m= (2) ;k=m;while (k<n){ while(a[k]>=0&&k<n)k= (3) ;if(k<n){ temp=a[k];a[k]=a[m];a[m]= (4) ;m= (5) ;}}}33.设有单链表类型定义如下:typedef struct node {int data;struct node *next;} *LinkList;阅读下列算法,并回答问题:void f33(LinkList head, int A, int B){LinkList p=NULL;While (head !=NULL){if (head->data>A&&head->data<B)p=head;head=head->next;}if (p !=NULL)printf("%d\n",p->data);}(1)已知链表h如下图所示,给出执行f33(h,5,8)之后的输出结果;(2)简述算法f33的功能。

1.下列选项中与数据存储结构无关的术语是()A.顺序表B.链表C.链队列D.栈2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是()A.n-1B.nC.2n-1D.2n3.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是()A.rear=(rear-1)%m;B.front=(front+1)%m;C.front=(front-1)%m;D.rear=(rear+1)%m;4.递归实现或函数调用时,处理参数及返回地址,应采用的数据结构是()A.堆栈B.多维数组C.队列D.线性表7.若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是()A.结点均无左孩子的二叉树B.结点均无右孩子的二叉树C.高度为n的二叉树D.存在度为2的结点的二叉树8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是()A.4B.5C.7D.89.下列叙述中错误的是()A.图的遍历是从给定的源点出发对每一个顶点访问且仅访问一次B.图的遍历可以采用深度优先遍历和广度优先遍历C.图的广度优先遍历只适用于无向图D.图的深度优先遍历是一个递归过程10.已知有向图G=(V,E),其中V={V1,V2,V3,V4},E={<V1,V2>,<V1,V3>,<V2,V3>,<V2,V4>,<V3,V4>},图G的拓扑序列是()A.V1,V2,V3,V4B.V1,V3,V2,V4C.V1,V3,V4,V2D.V1,V2,V4,V311.平均时间复杂度为O(n log n)的稳定排序算法是()A.快速排序B.堆排序C.归并排序D.冒泡排序12.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是()A.(18,22,30,46,51,68,75,83)B.(30,18,22,46,51,75,83,68)C.(46,30,22,18,51,75,68,83)D.(30,22,18,46,51,75,68,83)16.数据结构由数据的逻辑结构、存储结构和数据的____________三部分组成。

17.在单链表中某结点后插入一个新结点,需要修改_______________个结点指针域的值。

18.设栈S的初始状态为空,若元素a、b、c、d、e、f依次进栈,得到的出栈序列是b、d、c、f、e、a,则栈S的容量至少是________________。

19.长度为零的串称为________________。

22.一个有n个顶点的无向连通图,最少有________________条边。

23.当待排关键字序列基本有序时,快速排序、简单选择排序和直接插入排序三种排序方法中,运行效率最高的是________________。

24.在一棵深度为h的具有n个结点的二叉排序树中,查找任一结点的最多比较次数是______________。

26.已知一棵二叉排序树(结点值大小按字母顺序)的前序遍历序列为EBACDFHG,请回答下列问题:(1)画出此二叉排序树;(2)若将此二叉排序树看作森林的二叉链表存储,请画出对应的森林。

27.已知有向图的邻接表如图所示,请回答下面问题:(1)给出该图的邻接矩阵;(2)从结点A出发,写出该图的深度优先遍历序列。

28.已知待排记录的关键字序列为{25,96,11,63,57,78,44},请回答下列问题:(1)画出堆排序的初始堆(大根堆);(2)画出第二次重建堆之后的堆。

29.已知关键字序列为(56,23,41,79,38,62,18),用散列函数H(key)=key%11将其散列到散列表HT[0..10]中,采用线性探测法处理冲突。

请回答下列问题:(1)画出散列存储后的散列表:(2)求在等概率情况下查找成功的平均查找长度。

30.阅读下列程序。

void f30(int A[],int n)int i,j,m;for (i=1;i<n ;i++)for (j=0;j<i ;j++){m=A[i*n+j];A[i*n+j]=A[j*n+i];A[j*n+i]=m ;}}回答下列问题:(1)已知矩阵B=⎪⎪⎪⎭⎫ ⎝⎛9 8 7 6 5 4 3 2 1 ,将其按行优先存于一维数组A 中,给出执行函数调用f30(A ,3)后矩阵B 的值;(2)简述函数f30的功能。

31.假设以二叉链表表示二叉树,其类型定义如下:typedef struct node {char data;struct node*Ichild, *rchild; ∥左右孩子指针} *BinTree ;阅读下列程序。

void f31(BinTree T){InitStack(S); ∥ 初始化一个堆栈Swhile (T || !StackEmpty(S){while (T){Push(S,T); T=T->lchild;}if (!StackEmpty(S)){T=Pop(S); printf(“%c ”,T->data); T=T->rchild;}}}回答下列问题:(1)已知以T为根指针的二叉树如图所示,请写出执行f31(T)的输出结果:(2)简述算法f31的功能。

相关文档
最新文档