数据结构老师给的复习要点_第1页
数据结构老师给的复习要点_第2页
数据结构老师给的复习要点_第3页
数据结构老师给的复习要点_第4页
数据结构老师给的复习要点_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章1. 怎样理解“算法+数据结构=程序”这个公式?举例说明。算法是语句序列解决特定问题的固有程序片段。数据结构是确定数据间的关系。从具 体问题抽象出一个合适的数学模型、然后设计一个解决此数学模型的算法,最后编写出程 序。寻求数学模型的是指就是数据结构要完成的工作。参看书p1前两段的描述。2. 数据结构的概念,它包含哪三方面的内容?数据结构:是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间 饿关系和操作的学科。参看书p3包含三方面的内容:1、数据之间的逻辑关系 2、数据在计算机中的存储方式3、在数据上定义的运算的集合。3. 数据、数据元素、数据项的基本概念。举例说明数据元素和

2、数据项的联系与区别。数据:描述客观事物的数字、字符以及所有能直接输入到计算机中并被计算机程序处 理的符号的集合。数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑或处理。数据项:数据项是具有独立含义的最小标识单位,是数据元的一个具体值,是数 据记录中最基本的、不可分的有名数据单位。例 1 : class Aint c123;int i;;class BA a;B b ;b.a是数据项,B是数据元素例2: 本书的数目信息为一个数据元素,而数目信息中每一项(如书名、作者名等)为一 个数据项4. 从逻辑结构来看,数据结构有哪四种基本结构,各自的特点是什么?1、集合(数据元素之间同属于一

3、个集合,再无其他关系)2、线性结构(数据元素之间存在一对一的关系)3、树形结构(数据元素之间一对多的关系)4、图状结构或网状结构(数据元素之间多对多的关系)5. 从物理结构来看,数据结构有哪两种基本结构,各自的特点是什么?1、顺序存储结构特点:借助元素在存储器中的相应位置来表示数据元素之间的逻辑关系。2、链式存储结构特定:借助元素在存储地址的指针表示数据元素之间的逻辑关系。6. 算法的5个特征,4个评价标准是什么? 特征:有穷性、确定性、可行性、输入、输出。评价标准:正确性、可读性、健壮性、效率与低存储量需求。7. 描述时间复杂度。(1)x=0; y=0; z=0;for (i=1; i<

4、;=n; i+) x+;for( j=1; jv=n; j+) y+;for( k=0; k<=(2*n); k+ )z+;程序片段中语句x=0、x+、y+、z+的时间复杂度和整段程序的时间复杂度。0(1)0(n)0(22)0(23)0(23)第二章线性表1. 描述线性结构的特点。2. 判断对错,并解释说明。线性表中的数据元素可以是各种各样的,但同一线性表中的元素一定具有相同(1) 特性。线性表采用顺序存储表示时,必须占用一片连续的存储单元。线性表采用链式存储表示时,不能占用一片连续的存储单元。101,每个元素的长度为3,计算出第6个元(2)(3)3. 顺序表的第一个元素的存储地址是 素

5、的存储地址是多少?L0C ( a6) =LOC(a1)+5*L=101+5*3=1164. 长度为n的顺序表中,在第i个元素前插入一个新元素时,需要移动多少个元素? 插入算法的平均移动次数是多少,时间复杂度是什么?参看书P2425,需要移动n-i+1个兀素,平均移动次数为 n/2,时间复杂度是0(n)5. 长度为n的顺序表中,将第i个元素删除时,需要移动多少个元素?删除算法的 平均移动次数是多少,时间复杂度是什么?参看书P2425,需要移动n-i个元素,平均移动次数为(n-1)/2 ,时间复杂度是0(n)6. 线性链表的存储特点是?单链表中的结点由哪两部分构成,画图说明。7. 在一个单链表中,

6、q所指结点是P所指结点的直接前驱结点,若在q与P之间插入一个s所指的结点,写出执行的两条语句(提示:先链接、后断开)。s->next=p; q->next=s;或者 s->next=q->next; q->next=s;8. 在单链表中,w所指结点是s所指结点的直接前驱结点删除s结点,写出执行的两条语句。w->n ext=s->n ext;free(s)9. 画图说明单循环链表为空的状态,并写出循环链表判断是否为空的语句。参看书P35图2.12 ( b) 判空语句 H->next=H10. 双向链表中,要在指针 q指向的结点后插入新结点t,写出执

7、行的四条语句。t->p rior=q ; t->n ext=q->n ext ; q->n ext=t ; t->n ext->p rior=s11. 双向链表中,要删除指针q的后继结点,写出执行的两条语句。T=q->next ; q->next=t->next ; free(t);或者 t=q->next;q->next-q->next->next;free(t)第三章栈和队列1. 判断对错(1)栈和队列是操作受限的线性表。(2)栈的插入操作只需要在表尾端进行,队列的插入操作只需要在表头进行。FRONT相关。(3)

8、栈的操作只和栈顶指针 TOP相关,队列的操作只和队头指针2. 栈的特点是?队列的特点是?(先进先出、先进后出中选择) 栈的特点是先进后出(FILO)队列的特点是先进先出(FIFO)3. 用文字描述算法。(参照我写的(1)的算法描述完成)(1)顺序存储的栈插入操作 算法描述:(2)顺序栈的删除操作 算法描述:第一步,判断栈是否为空,如果栈空,不能进行删除操作;第二步,栈不空的时候,栈顶指针TOP减1,向下移动一位;第三步,将要删除的栈顶元素用新变量保存;(3)链式存储的队列的插入操作 算法描述:第一步,禾U用指针创建新结点,新节点的数据域值为要入队列的元素,新结点的指 针域复制为NULL ;第二

9、步,将链队列的尾节点链接上新结点;第三步,修改链队列的尾指针的指向,让它指向新结点;(4)链栈的删除操作 算法描述:第一步,禾U用指针创建新结点,新节点的数据域值为要入栈的元素,新结点的指针 域复制为NULL ;第二步,新结点的指针域指向链栈的头结点;第三步,修改链栈的头指针TOP的指向,让它指向新结点;4.假设栈为S,写出判断语句typ edef struct sqstackint datamax;int top;sqstack ;s->t op= =0 s->t op = =maxsqstack *s ;(1)顺序栈为空的条件判断语句(2)顺序栈为满的条件判断语句5. 假设队列

10、为Q,写出判断语句typ edef struct SqQueueint dataMAX;int front;Front和队尾指针 Rear*/Q->rear= =Q->fro nt(Q->rea r+1)%MAX= =Q->fro ntint rear; /*定义队头指针;SqQueue *Q(1) 循环队列为空的条件判断语句(2) 循环队列为满的条件判断语句6. 总结说明,线性表的顺序存储与链式存储的区别? 参看书P27第一段第六章树和二叉树1. 一棵二叉树的广义表表示为a(b(c,d),e(f(,g),它含有双亲结点(4)个,单分支结点(2)个,叶子结点(3)个。e

11、只有左孩子f,二叉树根为a; a有左孩子b,右孩子e; b有左孩子c,右孩子d; f只有右孩子g2. 判断对错K' , K''的长度(1) 在树中,如果从结点 K出发,存在两条分别到达 相等的路径,则结点 K' , K''互为兄弟。,还可能是堂兄结点, 由完全二(2) 完全二叉树的某结点若无左孩子,则必是叶结点。叉树的性质决定(3) 一棵完全二叉树按层次遍历的序列为ABCDEFGH I,则在 后序遍历中结点B的直接后继是F。由于是完全二叉树,所以树中第一层是A,第二层从左向右是 B和C,第三层是D、E、F、G,第四层从左向右是 H和I。画出二叉树

12、,进行后序遍历,后序遍历序列 为 HIDEBFGCA。二叉树的后序遍历序列中,任意一个结点均处在其子树结点的后(4)面。后序遍历算法决定的,左、右、根(5)由二叉树结点的先根序列和后根序列可以唯一地确定一棵二叉树。(6)结构。(7)个结点都有不唯一,因为只有在中序遍历中才能划分左右子树树存储时采用双亲表示法时,求某个结点的孩子时需要遍历整个一棵有n ( n1)个结点的d叉树,右用多重链表表示,树中每 d个链域,则在树的nd个链域中,有n ( d-1) +1个是空链域,只有n-1个是非空链域。根据树的特性:一对多,每个结点都有且仅有一个双亲结点,除了根结点外。因此,n个结点的树中有n-1个结点都

13、有且仅有一个双亲,这个关系表示在链式存储里就一定 会占用它双亲的一个指针域,所以树中一定有n-1个非空指针域,多叉树也适用。(8)在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加2。解:二叉链表中有n个结点时,一定存在2n个指针域,n+1个空链域,则非空链域为n-1个,所以,空链域=非空链域+2(9)树的后根遍历序列等同于该树对应的二叉树的中序遍历。P138笔记(10)树利用孩子兄弟表示法转换后的二叉树中根结点一定不存在右子树。 看书P137页最后一句话,参看书,参3. 二叉树根结点的层次为1,所有含有(4 )°要想得出最小高度,必须是完全二叉树才能保证, 结点的完全二叉树的高

14、度是?参看二叉树性质4. 设一棵二叉树结点的先根序列为则二叉树中叶子结点是(E F H )。参看书P154例题5. 树的存储结构有几种?分别是?二叉树的存储结构有几种,分别是? 树的存储结构有三种:双亲表示法、孩子表示法、孩子兄弟表示法二叉树的存储结构有两:顺序存储、链式存储(又叫二叉链表的表示法) 在一棵二叉树的二叉链表中,空指针域数等于非空指针域数加(2)06. 若二叉树有7个度为2的结点,试问有?个终端结点。由二叉树的性质3得出,n0=n2+1,所以度为1的终端结点有7+1=8个7. 一棵有124个叶结点的完全二叉树,最多有?个结点。首先,由二叉树的性质 3得出,度为2的结点个数为124

15、-1=123个; 又根据二叉树的定义可以得出这样的结论:完全二叉树的前n-1层8. 一棵完全二叉树上有1001个结点,其中叶子结点的个数是?500解:设分支总数变量为b,则n=b+1 ,得出分支数为1000°分支数是偶数,所以不 存在度为1的结点,只有度为2的结点和叶子结点。根据性质3, n0=n2+1,所以1001 =n0+n2= 2*n0+1 o n0=500。9. w=4,5,6,7,8,如何构建哈夫曼树?第9章查找查找表的概念?这是四种经典数据结构中的哪一种?静态查找和动态查找有什么联系和区别?查找表中的关键字是数据元素还是数据项,有什么特点?ASL表示什么?写出计算的公式,

16、并解释公式中每个变量的含义。描述顺序查找的算法思想(用汉字描述,不是代码) 描述折半查找的算法思想。给定由以下元素组成的关键字序列(55, 46, 89, 13, 24, 67, 23, 15),将他15个结点的二叉树中,最小高度是因此这个题目考核的是有 即可得出15个4,ABDECFGH ,中根序列为 DEBAFCHG ,1.2.3.4.5.6.7.们存储在数组的第1位至第8位,现在要查找关键字为15和100的元素。描述查找过程。8. 画出包含8个元素的查找表对应的折半判定树。树的深度为?9. 根据给定的序列(21,54,43,76,87,65,32),生成一棵二叉排序树,并分析该二叉排序 树的平均查找长度 ASL;同时根据该序列,生成一棵平衡二叉树 ,并分析该平衡二叉树 的平均查找长度ASL 0第10章排序1.比较分析9种排序方法的时间复杂度和稳定性。排序方法平均时间最坏情况辅助空间稳定性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论