收藏 分销(赏)

2024年电大数据结构本期末复习指导.doc

上传人:快乐****生活 文档编号:8190826 上传时间:2025-02-07 格式:DOC 页数:44 大小:195.54KB 下载积分:12 金币
下载 相关 举报
2024年电大数据结构本期末复习指导.doc_第1页
第1页 / 共44页
2024年电大数据结构本期末复习指导.doc_第2页
第2页 / 共44页


点击查看更多>>
资源描述
中央广播电视大学 数据结构(本)期末复习指引 第一部分 课程考核阐明 一、考核阐明 数据结构(本)是中央广播电视大学计算机科学与技术(本科)专业的一门统设必修、学位课程。4学分,72学时,其中试验24学时,开设一学期。课程重要内容包括:数据结构和算法的基本概念、线性表、栈和队列、串、数组和广义表、树和图、查找和排序等。目标是使学生通过该课程的学习,深入地了解数据的逻辑结构和物理结构以及有关算法,掌握基本的程序设计技能,学会编制高效可靠的程序,为学习后续课程奠定基础。   现将有关考核的几个问题阐明如下:   1.考查对象   秋季起入学的计算机科学与技术专业(本科)学生。   2.考核依据   以数据结构(本)课程教学大纲为依据编制,考核阐明是本课程形成性考核和终止性考试命题的基本依据。   3.考核方式   采取形成性考核和终止性考试相结合的方式。   4.课程总成绩的记分措施   课程总成绩按百分制记分,其中形成性考核所占的百分比为30%,终止性考试占70%。60分为合格,能够取得课程学分。本课程的学位课程学分为70分,即课程总成绩达成70分及以上者有资格申请专业学位。 5.形成性考核的要求、形式及伎俩 形成性考核重要考核学生形成性作业和试验的完成情况,占课程总成绩的30%。形成性考核以作业册的形式下发,由各地电大依照学生作业和试验的完成情况进行考核。中央电大将不定期随机抽检各地电大学生的形成性作业及课程试验报告。   6.终止性考试的要求及方式   (1) 考试要求 考核要求分为了解、了解和掌握三个层次: 了解:是指(1)学习本课程主干知识点所需要的概念、措施、预备知识和有关内容。(2)就大部分学生目前的知识结构和基础了解和掌握有一定困难,有待此后深入学习的内容。(3)在主干知识点基础上拓展的内容。这部分不属考核的重要内容。 了解:是指要求学生准确全面领会的概念、措施和思绪等。有关内容是本课程的主干知识点,要求学生能融汇贯通,并能利用所学知识分析处理有关问题。这部分是考核的重要范围。 掌握:是指本课程最重要的知识点,能充足体现本课程的教学要求,要求学生在了解所学知识的基础上能灵活应用。能结合课程的不一样知识点处理综合性的问题和简单应用问题。这部分是考核的重点内容。 (2) 考核方式 中央电大统一命题,闭卷考试。 (3)组卷标准   在考核阐明所要求的内容和要求之内命题。在教学内容范围之内,按照理论联系实际标准,考查学生对所学知识应用能力的试题,不属于超纲。 试题的难易程度和题量适当,按难易程度分为易、中、难三个层次:易占25%,中占45%,难占30%。题量安排以大多数考生能在要求的考试时间内做完并有一定期间检查为标准。 (4)试题类型及试卷结构 试题题型有单项选择题、填空题、综合题和程序填空题四种题型。试卷结构如下: 单项选择题:每题2分,共30分 填空题: 每题2分,共24分   综合题: 每题10分,共30分 程序填空题:每空2分,共16分 共100分     (5)答题时限 答题时限为90分钟。 二、考核内容和要求 第1章 绪论(2学时) [考核知识点] 1.数据结构的基本概念 2.算法和算法分析的基本概念 [考核要求] 1.了解数据结构的基本概念 2.掌握逻辑结构、物理结构的概念及相互关系 3.掌握本书简介的四种基本结构的特点 4.了解算法及其特性 5.了解算法分析的一般概念 第2章 线性表(8学时) [考核知识点] 1.线性表的定义、逻辑结构、次序存储结构、链式存储结构 2.线性表在次序结构和链式结构上的基本操作和应用 3.双向链表、循环链表的原理和有关操作 [考核要求] 1.了解线性表的定义及两种存储结构 2.了解线性表次序存储的特点、实现措施和应用。 3.掌握次序表的基本操作(包括建立链表、遍历链表、删除、插入、查找)和应用。尤其要求能够利用链表的操作和有关的程序设计技术编制有一定难度的程序。 4.了解双向链表、循环链表的原理和有关操作。 第3章 栈和队列(6学时) [考核知识点] 1.栈的定义、栈的存储结构(次序存储、链式存储)和基本操作、栈的应用 2.队列的定义、队列的存储结构(次序存储、链式存储)、队列的应用 3.循环队列的概念和实现措施 [考核要求] 1.掌握栈和队列的操作特点 2.了解次序栈、次序队列的基本操作 3.了解在实际编程中栈和队列的不一样应用。了解循环队列的概念、实现措施。掌握循环队列判空、判满的条件 4.能按照后续章节(例如二叉树、排序等)的要求利用递归程序设计技术实既有关算法 第4章 串(2学时) [考核知识点] 1.串类型定义、C语言中字符串的特点和处理措施 2.串的次序存储结构和链式存储结构 3.串的基本运算和实现措施 [考核要求] 1.了解串的定义和存储措施 2.了解串的基本操作和有关算法 3.掌握用C语言处理字符串的语法规则 第5章 数组和广义表(2学时) [考核知识点] 1.数组的定义和存储结构 2.特殊矩阵和稀疏矩阵的存储结构 3.广义表的定义和存储结构 [考核要求] 1.了解数组的存储结构。 2.掌握特殊矩阵进行压缩存储的下标转换公式。 3.了解稀疏矩阵的压缩存储原理。 4.掌握利用三元组表示稀疏矩阵的措施。 5.了解广义表的概念和存储结构。 第6章 树和二叉树(10学时) [考核知识点] 1.树的基本概念 2.二叉树的性质和存储结构 3.二叉树的遍历和线索二叉树 4.哈夫曼树及其应用 [考核要求] 1.了解树和二叉树的定义 2.掌握二叉树的基本性质,能利用有关性质处理简单计算问题 3.了解二叉树的次序存储结构 4.掌握二叉树的链式存储结构、有关操作 5.掌握二叉树的有关算法并能编程实现 6.掌握利用遍历序历结构二叉树的规则和详细步骤 7.掌握哈夫曼树的定义、性质和结构措施 8.了解哈夫曼树的应用 第7章 图(6学时) [考核知识点] 1.图的基本概念 2.图的存储结构 3.图的遍历 4.最小生成树和最短途径。 [考核要求] 1.了解图的基本概念 2.掌握图的存储措施(邻接矩阵、邻接表) 3.掌握图的深度优先和广度优先遍历的规则和步骤 4.了解在连通图中求最小生成树的措施。了解求图的最短途径等有关算法及其应用 第8章 查找(6学时) [考核知识点] 1.线性表的查找(次序查找、折半查找、分块查找)。 2.二叉排序树的查找。 3.哈希表(哈希表的定义、哈希函数的结构、处理冲突的措施、哈希表的查找和分析)。 [考核要求] 1.了解查找的有关概念。 2.掌握次序表的查找措施、步骤、程序实现、时间复杂度和平均查找长度。 3.掌握在有序的次序表上进行折半查找的措施、步骤、程序实现。 4.掌握折半查找的判定树的结构措施。能利用判定树求平均查找长度。 5.掌握二叉排序树确实切定义,掌握建立二叉排序树的步骤和措施。了解在二叉排序树中进行输入、删除操作的规则。 6.了解哈希表的有关概念和原理,了解常用哈希函数的结构和处理冲突的措施。了解哈希函数和哈希表的关系及在查找中的应用。 第9章 排序(6学时) [考核知识点] 1.插入排序(直接插入排序、希尔排序) 2.互换排序(冒泡排序、迅速排序) 3.选择排序(简单项选择择排序、堆排序) 4.归并排序 [考核要求] 1.掌握教材中简介的各种排序算法的基本原理、步骤。 2.能针对小规模详细实例,按有关排序算法的规则人工完成排序;能通过度析排序的中间成果判断所用的排序算法。 3.能正确了解有关排序算法的程序实例,并重点掌握算法中的核心步骤和核心语句。 4.掌握堆和特殊的完全二叉树的对应关系。掌握建堆、筛选算法和完全二叉树有关操作的对应关系。 三、试题类型及答案 一、单项选择题(每题2分,共30分) 1.数据结构中,与所使用的计算机无关的是数据的( )结构。 A. 逻辑 B. 物理 C. 存储 D. 逻辑与物理 2.下述各类表中能够随机访问的是( )。 A. 单向链表 B. 双向链表 C.单向循环链表 D.次序表 3.在一个长度为n的次序表中为了删除第5个元素,从前到后依次移动了15个元素。则原次序表的长度为( )。 A. 21 B. 20 C. 19 D. 25 4.元素2,4,6按次序依次进栈,则该栈的不也许的输出序列是( )。 A. 6 4 2 B. 6 2 4 C. 4 2 6 D. 2 6 4 5.一个队列的入队序列是5,6,7,8,则队列的输出序列是( )。 A. 5 6 7 8 B. 8 7 6 5 C. 7 8 6 5 D.也许有多个情况 6. 串函数StrCmp(“d”,“D”)的值为( )。 A.0 B.1 C.-1 D.3 7.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( )。 A.p=q->next B.p->next=q C.p->next=q->next D.q->next=NULL 8.设一棵哈夫曼树共有n个非叶结点,则该树一共有( )个结点。 A. 2*n-1 B. 2*n +1 C. 2*n D. 2*(n-1) 9.对如图1所示二叉树进行中序遍历,成果是( )。 A. dfebagc B. defbagc C. defbacg D.dbaefcg 图1 c b c d e f g a 10 . 任何一个无向连通图的最小生成树( )。 A.最少有一棵 B.只有一棵 C.一定有多棵 D.也许不存在 11.设有一个10阶的对称矩阵A,采取压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A8,5在一维数组B中的下标是( )。 A.33 B.32 C.85 D.41 12 . 一组统计的核心字序列为(37,70,47,29,31,85),利用迅速排序,以第一个核心字为分割元素,通过一次划分后成果为( )。 A.31,29,37,85,47,70 B.29,31,37,47,70,85 C.31,29,37,70,47,85 D.31,29,37,47,70,85 13 . 对n个元素进行冒泡排序,要求按升序排列,程序中设定某一趟冒泡没有出现元素互换,就结束排序过程。对某n个元素的排序共进行了3n-6次元素间的比较就完成了排序,则( )。 A.原序列是升序排列 B.原序列是降序排列 C.对序列只进行了2趟冒泡 D. 对序列只进行了3趟冒泡 14.在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,应执行( )。 A.x=top->data;top=top->next; B. top=top->next ; x=top; C.x=top;top=top->next ; D. x=top->data; 15.串函数StrCat(a,b)的功效是进行串( )。 A.比较 B.复制 C.赋值 D.连接 二、填空题(每题2分,共24分) 1.在一个单向链表中p所指结点之后插入一个s所指的新结点,应执行s->next=p->next;和______操作。 2.依照数据元素间关系的不一样特性,一般可分为________、 、 、 四类基本结构。 3.在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为________。 (结点的指针域为next) 4.________遍历二叉排序树可得到一个有序序列。 5.一棵有2n-1个结点的二叉树,其每一个非叶结点的度数都为2,则该树共有_______个叶结点。 6.如图1所示的二叉树,其中序遍历序列为____ _____。 e f g i b a c h d 图1 7.对稀疏矩阵进行压缩存储,矩阵中每个非零元素所对应的三元组包括该元素的________、________和________三项信息。 8 . 有一个有序表{2,3,9,13,33,42,45,63,74,77,82,95,110},用折半查找法查找值为82的结点,经________次比较后查找成功。 9 .图的深度优先搜索和广度优先搜索序列不是唯一的。此断言是______的。(回答正确或不正确) 10.哈希法既是一个存储措施,又是一个 。 11.44.在对一组统计(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个统计65插入到有序表时,为寻找插入位置需比较_________次。 12.栈和队列的操作特点分别是________和 ________。 三、综合题(每题10分,共30分) 1.已知序列{11,19,5,4,7,13,2,10} , (1)试给出用归并排序法对该序列作升序排序时的每一趟的成果。 (2)对上述序列用堆排序的措施建立初始堆(要求小根堆,以二叉树描述建堆过程)。 2.设有序表为(13,19,25,36,48,51,63,84,91,116,135,200),元素的下标依次为1,2,……,12. (1)说出有哪几个元素需要通过3次元素间的比较才能成功查到 (2)画出对上述有序表进行折半查找所对应的判定树(树结点用下标表示) (3)设查找元素5,需要进行多少次元素间的比较才能确定不能查到. 3. (1) 设有查找表{5,14,2,6,18,7,4,16,3},依次取表中数据,结构一棵二叉排序树. (2)阐明怎样通过序列的二叉排序树得到对应序列的排序成果,对上述二叉排序给出中序遍历的成果. 四、程序填空题(每空2分,共16分) 1.如下冒泡法程序对存储在a[1],a[2],……,a[n]中的序列进行冒泡排序,完成程序中的空格部分,其中n是元素个数,程序按升序排列。 Void bsort (NODE a[ ], int) { NODE temp; int i,j,flag; for(j=1; (1) ;j++); {flag=0; for(i=1; (2) ;i++) if(a[i].key>a[i+1].key) {flag=1; temp=a[i]; (3) ; (4) ; } if(flag= =0)break; } } 程序中flag的功效是(5) 7.如下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域为data,其数据类型为字符型,BT指向根结点)。 Void Postorder (struct BTree Node *BT) { if(BT!=NULL){ (1) ; (2) ; (3) ; } } 试题答案; 一、单项选择题(每题2分,共30分) 1.A 2.D 3.B 4.B 5.A 6.C 7.C 8.B 9.A 10.A 11.A 12.D 13.D 14.A 15.D 二、填空题(每题2分,共24分) 1.p->next=s; 2.集合、线性、树形、图状 3. f=f->next; 4.中序 5.n 6. dgbaechhif 7.行号、列号、元素值 8.4次 9.正确 10.查找措施 11.3次 12.先进后出 先进先出 三、综合题(每题10分,共30分) 1. (1) 初始 11,19,5,4,7,13,2,10 第一趟 [ 11,19][4,5][7,13][2,10] 第二趟 [4,5,11,19][2,7,10,,13] 第三趟 [2,4,5,7,10,11,13,19] 13 5 10 11 19 7 2 4 (2) 2 10 11 5 19 7 4 13 7 13 10 13 19 11 2 5 4 19 2 4 7 10 5 11 2. (1)13,36,63,135 4 7 12 8 5 2 11 1 10 6 3 9 (2) (3)3次 5 3. (1) 14 2 18 6 4 7 16 3 (2)中序遍历 中序 2,3,4,5,6,7,14,16,18 四、程序填空题(每空2分,共16分) 1. (1)j<=n-1 (2)i<=n-j (3)a[i]=a[i+1] (4)a[i+1]=temp (5)当某趟冒泡中没有出现互换则已排好序,结束循环 2. (1)Postorder(BTàleft) (2)Postorder(BTàright) (3)printf(“%c”,BTàdata) 第二部分 期末综合练习题 一、 单项选择题(每题2分) 1.针对线性表,在存储后假如最常用的操作是取第i个结点及其前驱,则采取( )存储方式最节约时间。 A.单链表 B.双链表 C.次序表 D.单循环链表 2.带头结点的单向链表为空的判断条件是( )(设头指针为head)。 A.head = =NULL B.head!=NULL C.head->next= =head D.head->next= =NULL 3.链表所具备的特点是( )。 A.能够随机访问任一结点 B.占用连续的存储空间 C.插入删除元素的操作不需要移动元素结点 D.能够通过下标对链表进行直接访问 4.非空的单向循环链表的尾结点满足( )(设头指针为head,指针p指向尾结点)。 A.p->next = =NULL B.p= =NULL C.p= =head D.p->next= =head 5.数据结构中,与所使用的计算机无关的是数据的( )结构。 A.物理 B.逻辑 C.存储 D.逻辑与物理 6.算法的时间复杂度与( )有关。 A.所使用的计算机 B.计算机的操作系统 C.算法自身 D.数据结构 7.设有一个长度为n的次序表,要在第i个元素之前插入一个元素(也就是插入元素作为新表的第i个元素),则移动元素个数为( )。 A.n-i+1 B.n-i C.n-i-1 D.i 8.设有一个长度为n的次序表,要删除第i个元素需移动元素的个数为( )。 A.n-i+1 B.n-i C.n-i-1 D.i 9.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是( )。 A.p=q->next B.p->next=q C.q->next=NULL D.p->next=q->next 10.在一个单链表中p所指结点之后插入一个s所指的结点时,可执行( )。 A.p=sànext B.pànext=sànext; C.sànext=pànext; pànext=s; D.pànext= s; sànext= pànext 11.从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的植,则执行( )。 A.x=top->data; top=topànext; B.x=top->data; C.top=top->next; x=top->data; D.top=top->next; x=data; 12.在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为( )。 A.r=fànext; B.r=rànext; C.f=fànext; D.f=rànext; 13.在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为( )。 A.f->next=s; f=s; B.s->next=r;r=s; C.r->next=s;r=s; D.s->next=f;f=s; 14.元素1,3,5,7按次序依次进栈,则该栈的不也许输出序列是( )(进栈出栈能够交替进行)。 A.7,5,3,1 B.7,5,1,3 C.3,1,7,5 D.1,3,5,7 15.设有一个18阶的对称矩阵A,采取压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a10,8在一维数组B中的下标是( )。 A.18 B.45 C.53 D.58 16.在C语言中,次序存储长度为3的字符串,需要占用( )个字节。 A.4 B.3 C.6 D.12 17.一棵有n个结点采取链式存储的二叉树中,共有( )个指针域为空。 A.n B.n+1 C.n-1 D.n-2 18.在一棵二叉树中,若编号为i的结点存在左孩子,则左孩子的次序编号为( )。 A.2i B.2i-1 C.2i+1 D.2i+2 19.设一棵哈夫曼树共有n个叶结点,则该树有( )个非叶结点。 A.n B.2n C.n-1 D.n+1 20.一棵具备35个结点的完全二叉树,最后一层有( )个结点。 A.4 B.6 C.16 D.8 21.一棵完全二叉树共有5层,且第5层上有六个结点,该树共有( )个结点。 A.30 B.20 C.21 D.23 22.在一个无向图中,所有顶点的度数之和等于边数的( )倍。 A.3 B.2 C.2.5 D.1.5 23.已知如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则也许得到的一个顶点序列为( )。 A.abecdf B.acfebd C.aedfcb D.aebcfd b d f e c a 图1 24.已知如图3所示的一个图,若从顶点V1出发,按广度优先法进行遍历,则也许得到的一个顶点序列为( )。 A.V1V2V4V8V5V3V6V7 B.V1V2V4V5V8V3V6V7 C.V1V2V4V8V3V5V6V7 D.V1V3V6V7V2V4V5V8 V6 V7 V1 V2 V3 V8 V4 V5 图3 25.在有序表{1,3,8,13,33,42,46,63,76,78,86,97,100}中,用折半查找值86时,经( )次比较后查找成功。 A.3 B.4 C.6 D.8 26.对二叉排序树进行( )遍历,能够使遍历所得到的序列是有序序列。 A.按层次 B.后序 C.中序 D.前序 27.有一个长度为12的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为( )。 A.37/12 B.39/12 C.41/12 D.35/12 28.设已经有m个元素有序,在未排好序的序列中挑选第m+1个元素,并且只通过一次元素的互换就使第m+1个元素排序到位,该措施是( )。 A.折半排序 B.冒泡排序 C.归并排序 D.简单项选择择排序 29.一组统计的核心字序列为(46,79,56,38,40,84),利用迅速排序,以第一个核心字为分割元素,通过一次划分后成果为( )。 A.40,38,46,79,56,84 B.40,38,46,84,56,79 C.40,38,46,56,79,84 D.38,40,46,56,79,84 30.一组统计的核心字序列为(47,80,57,39,41,46),利用堆排序(堆顶元素是最小元素)的措施建立的初始堆为( )。 A.39,47,46,80,41,57 B.39,41,46,80,47,57 C.41,39,46,47,57,80 D.39,80,46,47,41,57 二.填空题 1.把数据存储到计算机中,并详细体现数据之间的逻辑结构称为______ __结构。 2.算法的5个特性为_________。 3.结构中的数据元素存在 的关系称为树形结构。 4.要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。则比较的次数和算法的时间复杂度分别为________和 ________ 。 5.求两个n阶矩阵的乘积,算法的基本操作和时间复杂度分别为________和____ ____。 6.在一个单向链表中p所指结点之后插入一个s所指向的结点时,应执行s->next=p->next;和 的操作。 7.设有一个头指针为head的单向循环链表,p指向链表中的结点,若p->next= = head,则p所指结点为 。 8.在一个单向链表中,要删除p所指结点,已知q指向p所指结点的前驱结点。则能够用操作________。 9.设有一个头指针为head的单向链表,p指向表中某一个结点,且有p->next= =NULL,通过操作________,就可使该单向链表结组成单向循环链表。 10.向一个栈顶指针为h的链栈中插入一个s所指结点时,可执行s->next=h; 和 操作。(结点的指针域为next) 11.从一个栈顶指针为h的链栈中删除一个结点时,用x保存被删结点的值,可执行 和h=h->next; (结点的指针域为next) 。 12.在一个链队中,设f和r分别为队头和队尾指针,则插入s所指结点的操作为r->next=s;和 (结点的指针域为next)。 13.在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为________。 (结点的指针域为next) 14.两个串相等的充足必要条件是_______ ___。 15.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的_______、_______和_______三项信息。 16.在二叉树的链式存储结构中,一般每个结点中设置三个域,它们是_______、 、 。 17.一棵有2n-1个结点的二叉树,其每一个非叶结点的度数都为2,则该树共有_______个叶结点。 18.一棵二叉树中有2n-2条边(结点间的连线),其中每一个非叶结点的度数都为2,则该树共有_______个非叶结点。 19.中序遍历二叉排序树可得到一个 。 20.如图1所示的二叉树,其中序遍历序列为________ _。 g f a b d e c e f g i b a c h d 图1 图2 21.如图1所示的二叉树,其先序遍历序列为_________。 22.如图1所示的二叉树,其后序遍历序列为_________。 23.如图2所示的二叉树,其前序遍历序列为_________。 24.哈希函数是统计核心字值与该统计存储地址之间所结构的对应关系。 25.图的深度优先搜索和广度优先搜索序列不一定是唯一的。此断言是______的。(回答正确或不正确) 26.n个元素进行冒泡法排序,一般需要进行________趟冒泡,第j趟冒泡要进行______次元素间的比较。 三、综合题 1.设一组统计的核心字序列为(49,83,59,41,43,47),采取堆排序算法完成如下操作:(要求小根堆,并画出中间过程) (1)以二叉树描述6个元素的初始堆 (2)以二叉树描述逐次取走堆顶元素后,经调整得到的5个元素、4个元素的堆 2.已知序列{11,19,5,4,7,13,2,10} (1)试给出用归并排序法对该序列作升序排序时的每一趟的成果。 (2)对上述序列用堆排序的措施建立初始堆(要求小根堆,以二叉树描述建堆过程)。 3.一组统计的核心字序列为(46,79,56,38,40,84) (1)利用迅速排序的措施,给出以第一个统计为基准得到的一次划提成果(给出逐次互换元素的过程,要求以升序排列) (2)对上述序列用堆排序的措施建立大根堆,要求以二叉树逐次描述建堆过程。 4.设查找表为(7,15,21,22,40,58,68,80,88,89,120) ,元素的下标依次为1,2,3,……,11. (1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示) (2)阐明成功查找到元素40需要通过多少次比较? (3)求在等概率条件下,成功查找的平均比较次数? 5.设查找表为(16,15,20,53,64,7), (1)用冒泡法对该表进行排序(要求升序排列),要求写出每一趟的排序过程,一般对n个元素进行冒泡排序要进行多少趟冒泡?第j趟要进行多少次元素间的比较? (2)在排序后的有序表的基础上,画出对其进行折半查找所对应的判定树.(要求以数据元素作为树结点) (3)求在等概率条件下,对上述有序表成功查找的平均查找长度. 6. (1)假如二叉树中任一结点的值均不小于其左孩子的值、小于其右孩子的值,则该树为二叉排序树,这种说法是否正确?若以为正确,则回答正确,若以为不正确,则举例阐明。 (2)设有数据集合{40,29,7,73,101,4,55,2,81,92,39},依次取集合中各数据,结构一棵二叉排序树. 7. (1) 设有查找表{5,14,2,6,18,7,4,16,3},依次取表中数据,结构一棵二叉排序树. (2)阐明怎样由序列的二叉排序树得到对应序列的排序成果,对上述二叉排序给出中序遍历的成果. 8. (1)“一棵二叉树若它的根结点的值不小于左子树所有结点的值,小于右子树所有结点的值,则该树一定是二叉排序树”。该说法是否正确,若以为正确,则回答正确,若以为不正确则阐明理由? (2)设有查找表{7,16,4,8,20,9,6,18,5},依次取表中数据结构一棵二叉排序树. 对上述二叉树给出后序遍历的成果. 9. (1)以2,3,4,7,8,9作为叶结点的权,结构一棵哈夫曼树,给出对应权重值叶结点的哈夫曼编码。 (2) 一棵哈夫曼树有n个叶结点,它一共有多少个结点?简述理由? 10.(1)对给定权值2,1,3,3,4,5,结构哈夫曼树。 (2)同样用上述权值结构另一棵哈夫曼树,使两棵哈夫曼树有不一样的高度,并分别求两棵树的带权途径长度。 g i a b c e h f d 11.如图所示的二叉树 (1)给出中序遍历序列 (2)给出先序遍历序列 (3)给出后序遍历序列 四、程序填空题 1.如下冒泡法程序对存储在a[1],a[2],……,a[n]中的序列进行冒泡排序完成程序中的空格部分,其中n是元素个数,要求按升序排列。 void bsort (NODE a[ ], int n) { NODE temp; int i,j,flag; for(j=1; ;j++); {flag=0; for(i=1; ;i++) if(a[i].key>a[i+1].key) {flag=1; temp=a[i]; ; ; } if(flag= =0)break; } } 程序中flag的功效是 … 2.如下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,……,n,完成程序中空格部分。 NODE *create(n) {NODE *head , *p, *q; int i; p=(NODE*)malloc(sizeof(NODE)); head=  ; ‚ ;pànext=NULL; /*建立头结点*/ for(i=1; i<=n; i++) {
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服