数据结构期末重点复习题.ppt
《数据结构(c语言版)》重点知识汇总.pptx
数组一般用顺序存储的方式表示。 存储的方式有: ·行优先顺序,也就是把数组逐行依次排列。PASCAL、C
·列优先顺序,就是把数组逐列依次排列。FORTRAN
·子串在主串中的序号就是指子串在主串中首次出现的位置。
地址的计算方法: ·按行优先顺序排列的数组:LOCa(ij)=LOCa(11)+((i-1)
·三角矩阵: ·上三角阵:k=i*(2n-i+1)/2+j-i,LOCa(ij)=LOC(sa[0])+k*d. ·下三角阵:k=i*(i+1)/2+j,LOCa(ij)=LOC(sa[0])+k*d.
·对角矩阵:k=2i+j,LOCa(ij)=LOC(sa[0])+k*d. 稀疏矩阵的压缩存储方式用三元组表把非零元素的值和它所在的行号列号做为一
·第三种就是用一个计数器记录队列中的元素的总数。 队列的链式存储结构称为链队列,一个链队列就是一个操作受限的单链表。为了便于在
但不适合插入、链接操作。 ·动态存储分配:是在定义串时不分配存储空间,需要使用时按所需串的长度分配存
储单元。 串的链式存储就是用单链表的方式存储串值,串的这种链式存储结构简称为链串。链
单元中的各元素的物理位置和
·优点是将数据和操作封装在一起实现了信息隐藏。 程序设计的实质是对实际问题选择一种好的数据结构,设计一个好的算法。算法取决于 数据结构。
逻辑结构中各结点相邻关系是一致的。地址计算:LOCa(i)=LOCa(1)+(i-1)*d; (首地址为 1)
在顺序表中实现的基本运算:
算法是一个良定义的计算过程,以一个或多个值输入,并以一个或多个值输出。 评价算法的好坏的因素:·算法是正确的; ·执行算法的时间;
数据结构期末复习
数据结构期末复习*时间复杂度1. for (i=0; i<n; i++)for (j=0; j<m; j++)A[i][j]=0;答:O(m*n)2. s=0;for i=0; i<n; i++)for(j=0; j<n; j++)s+=B[i][j];sum=s;答:O(n2)3. x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;解:因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)4. i=1;while(i<=n)i=i*3;答:O(log3n)5.for (i=1;i<n;i++){ y=y+1;for (j=0; j<=(2*n); j++)x++;}答:O(n2)6.x=1;for (i=1;i<=n;i++)for (j=1;j<=i;j++)for (k=1;k<=j;k++)x++;答:O(n3)*线性表的定义和性质,求地址的方法线性表的定义:是n个数据元素的有限序列线性表的性质:1、线性表中结点的集合是有限的,结点间的关系是一对一的。
2、(D)7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址:(A)必须是连续的(B)部分地址必须是连续的(C)一定是不连续的(D)连续或不连续都可以3、(B)8.线性表L在情况下适用于使用链式结构实现。
(A)需经常修改L中的结点值(B)需不断对L进行删除插入(C)L中含有大量的结点(D)L中结点结构复杂求地址的方法:设首元素a1的存放地址为LOC(a1)(称为首地址),设每个元素占用存储空间(地址长度)为L字节,则表中任一数据元素的存放地址为:LOC(ai) = LOC(a1) + L *(i-1)LOC(ai+1) = LOC(ai)+L*字符串相等的定义长度相等并且各个对应位置上的字符都相等。
数据结构期末复习知识点(兼容版)
《数据结构》期末复习 复习要点: 第一章 1.相关基本概念:数据、数据元素(基本单位)、数据项(最小单位)、算法及其特征等; ◎数据:所有能输入到计算机中并被计算机程序处理的符号总称。 ◎数据元素:基本单位。 ◎数据项:最小单位。 ◎算法特征(5点):有穷性;确定性;可行性;输入;输出。 2.逻辑结构、存储结构(物理结构)及其类型; ◎逻辑结构有四种基本类型:集合、线性结构、树形结构和网状结构。 ◎数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。 ◎注:期中考题目 数据结构分为两大类,即为逻辑结构和存储结构。其中逻辑结果又分为 线性结构和非线性结构 ,存储结构一共有四种(顺序、链接、索引、散列)。 3.算法分析:语句频度(执行次数)计算、时间和空间复杂度分析。 表示方法 ◎语句频度:直接写次数。 ◎时间复杂度:O(执行次数),如:O(n)。 ◎空间复杂度:O(所需空间) 第二章 1.顺序表(数组)插入、删除、有序表合并算法及其移动次数计算;
数据元素 序号 1 2 3 4 5 6 7 8 表示 L.elem[0] [1] [2] [3] [4] [5] [6] [7] ◎顺序表插入 算法思想:如果要在序号5前插入元素e,需要将序号5~8向后移动一个位置。 ▲移动次数为4次,公式n-i+1
12 13 21 24 28 30 42 77
◎顺序表删除 算法思想:如果要删除序号5元素,需要将6~8依次向前移动一位 ▲移动次数为3次,公式n-i
◎有序表合并
LA = (3,5,8,11) LB = (2,6,8,9,11,15,20) 则LC = (2,3,5,6,8,8,9,11,11,15,20) 算法思想(以非递减为例):La和Lb非递减排列,La与Lb中元素逐个比较,较小的先插入Lc中。 ▲注:非递减是指递增排序,但元素有可能相等,与之相对的有非递增排序。 ▲移动次数为(La.length + Lb.length)
数据结构期末复习知识点(兼容版)
数据结构期末复习知识点(兼容版)《数据结构》期末复习复习要点:第一章1.相关基本概念:数据、数据元素(基本单位)、数据项(最小单位)、算法及其特征等;◎数据:所有能输入到计算机中并被计算机程序处理的符号总称。
◎数据元素:基本单位。
◎数据项:最小单位。
◎算法特征(5点):有穷性;确定性;可行性;输入;输出。
2.逻辑结构、存储结构(物理结构)及其类型;◎逻辑结构有四种基本类型:集合、线性结构、树形结构和网状结构。
◎数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。
◎注:期中考题目数据结构分为两大类,即为逻辑结构和存储结构。
其中逻辑结果又分为线性结构和非线性结构,存储结构一共有四种(顺序、链接、索引、散列)。
3.算法分析:语句频度(执行次数)计算、时间和空间复杂度分析。
表示方法◎语句频度:直接写次数。
◎时间复杂度:O(执行次数),如:O(n)。
◎空间复杂度:O(所需空间)第二章1.顺序表(数组)插入、删除、有序表合并算法及其移动次数计算;12 13 21 24 28 30 42 77数据元素表示 L.elem[0] [1] [2] [3] [4] [5] [6] [7]◎顺序表插入算法思想:如果要在序号5前插入元素e,需要将序号5~8向后移动一个位置。
▲移动次数为4次,公式n-i+1◎顺序表删除算法思想:如果要删除序号5元素,需要将6~8依次向前移动一位▲移动次数为3次,公式n-i◎有序表合并LA = (3,5,8,11)LB = (2,6,8,9,11,15,20)则LC = (2,3,5,6,8,8,9,11,11,15,20)算法思想(以非递减为例):La和Lb非递减排列,La与Lb中元素逐个比较,较小的先插入Lc中。
▲注:非递减是指递增排序,但元素有可能相等,与之相对的有非递增排序。
▲移动次数为(La.length + Lb.length)2.链表(有无头节点、单双、循环)插入(前、后)、删除(前、本身、后)的指针挂接、建立(不带头节点)算法。
C题库期末复习PPT课件
• 树和森林 • 树和森林与二叉树之间的转换方法和对应关系 • 树的各种存储结构的表示方法及其特点 • 树的先序和后序遍历方法 • 森林的先序和中序遍历方法
第22页/共49页
• 哈夫曼树及其应用 • 最优二叉树的概念及特点 • 求哈夫曼树的方法 • 设计哈夫曼编码的方法
第23页/共49页
第2页/共49页
第二章 线性表
•
线性表的逻辑结构
• 线性表的逻辑结构特征
• 线性表上定义的基本运算,并能利用基本运算构造出较复杂的运算
第3页/共49页
• 线性表的顺序存储结构 • 顺序表的存储方式及它如何映射线性表中元素之间的逻辑关系 • 顺序表的存储结构定义 • 线性表基本运算在顺序表上的实现方法及其时间性能分析 • 利用顺序表设计算法解决应用问题
第13页/共49页
• 在一个循环链队中只有尾指针(记为rear,结点结构为
数据域data,指针域next),请给出这种队列的入队
和出队操作的实现过程(算法)。
void EnQueue (LinkedList rear, ElemType
x)
{ s= (LinkedList) malloc (sizeof(LNode));
第12页/共49页
• 队列的逻辑结构,存储结构及其相关算法 • 队列的逻辑结构特点,队列与线性表的关系 • 顺序队列和链队列的存储结构定义( PASCAL语言的类型描述) • 顺序队列(主要是循环队列)和链队列上入队、出队等基本运算的实现方法 • 队列的“上溢”和“下溢”的概念及其判别条件 • 循环队列取代普通的顺序队列的原因 • 利用队列设计算法解决简单的应用问题
• 写出单链表(带头结点)就地逆置算法。
数据结构期末复习
第三章
3.1 栈
栈和队列
3.2 栈的应用举例
3.3 栈与递归的实现 3.4 队列
• 1.2 基本概念和术语 数据结构的形式化定义: 数据结构是一个二元组 Data_Structure=(D,S) D是数据元素的有限集 S是D上关系的有限集
• 1.2 基本概念和术语
(集合):数据元素间除“同属于一个集合”外, 无其它关系 线性结构:一个对一个,如线性表、栈、队列 树形结构:一个对多个,如树 图状结构:多个对多个,如图
• 1.2 基本概念和术语
一、基本概念
– 数据(data)—所有能输入到计算机中去的描述客观 事物的符号的总称
– 数据元素(data element)—数据的基本单位,也称 节点(node)或记录(record)
– 数据项(data item)—有独立含义的数据最小单位, 也称域(field) – 数据对象(Data Object)—性质相同的数据元素的 集合,是数据的子集。 – 数据结构(data structure)—相互之间存在一种或 多种特定关系的数据元素的集合。(带有结构的数 据元素的集合)
3.1.2 栈的表示和实现
栈的存储结构 栈顺序存储表示——顺序栈 # define STACK_INIT_SIZE 100 # define STACKINCREMENT 10 //存储空间增量 typedef struct { Selemtype *base; //在栈构造之前和销毁之后,base的值为NULL Selemtype *top; //栈顶指针 int stacksize; //当前已分配的存储空间,以元素为单位 } sqstack; 栈的基本操作:P46-47
数据结构总复习资料(完整版)(精华版)
2018 数据结构总复习第一章概论1.1 数据结构的定义和分类1. 数据结构的定义数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科。
2. 数据结构包括的内容(1)逻辑结构:数据元素之间的逻辑关系。
(2)存储结构:数据元素及其关系在计算机存储器内的表示。
(3)操作:数据的运算(检索、排序、插入、删除、修改)。
1.2 为什么学习数据结构1. 学习数据结构的作用(1)计算机内的数值运算依靠方程式,而非数值运算(如表、树、图等)则要依靠数据结构。
(2)同样的数据对象,用不同的数据结构来表示,运算效率可能有明显的差异。
(3)程序设计的实质是对实际问题选择一个好的数据结构,加之设计一个好的算法。
而好的算法在很大程度上取决于描述实际问题的数据结构。
2. 电话号码查询问题(1)要写出好的查找算法,取决于这张表的结构及存储方式。
(2)电话号码表的结构和存储方式决定了查找(算法)的效率。
1.3 算法的概念和特点1. 算法的概念和特点算法是由若干条指令组成的有穷序列,具有以下特点:(1)输入:具有0 个或多个输入的外界量。
(2)输出:至少产生 1 个输出。
(3)有穷性(4)确定性(5)可行性:每一条指令的执行次数必须是有限的。
:每条指令的含义都必须明确,无二义性。
:每条指令的执行时间都是有限的。
2. 算法与程序的区别(1)一个程序不一定满足有穷性,但算法一定。
(2)程序中的指令必须是机器可执行的,而算法无此限制。
(3)一个算法若用机器可执行的语言来描述,则它就是一个程序。
1.4 算法分析1. 时间复杂度算法中基本操作重复执行的次数是问题规模n 的某个函数,用T(n) 表示,若有某个辅助函数f(n) ,使得当n 趋近于无穷大时,的极限值为不等于零的常数,则称f(n) 是T(n) 的同数量级函数。
T(n) / f(n)记作T(n)=O(f(n)) ,称O(f(n)) 为算法的渐近时间复杂度,简称时间复杂度。
数据结构期终考试复习ppt课件
___re_a_r__—_>__li_n_k_=__fi_r_s_t ____(头结点指针为first)。
3、为了保证递归过程的正确执行,必须通过系统工作栈来保存相应的重要
参数如:局部变量、参数和返回地址,它们构成一个____递__归__工_作_____记录 。
1011年度第一学期
数据结构 总复习
复习资料:
• 《数据结构》(面向对象方法与c++语言描述)(第2版)
殷人昆编著,清华大学出版社, 2007年6月 第2版
• 授课讲义( PPT 电子讲稿) • 课程指定参考书和有关参考书 • 网上有关资料
数据结构的考察内容
自然界
分 析 ADT
计算机
处
模
理
CPU
《数据结构》期终考试复习讲解
期终考试题型说明
一、填空题(20分) 二、单项选择题(20分) 三、简答题(20分) 四、应用题(20分) 五、算法设计题(20分)
本部分将以最基本概念为主,测试范围: 第1、2、3、4、5、8章 的最基本内容: 数据结构概论; 线性表 栈和队列 数组、串和广义表的概念 树的基本概念 图的基本概念
本部分将以最基本概念为主,测试范围: 第2、3、5章 的最基本内容: 线性表; 栈与队列; 树;
《数据结构》期终考试复习讲解
期终考试题型说明____三、简答题示例:
三 、简单回答下列问题(每题5分,共20分)
1、给出二叉树的带权路径长度的定 义,给出其公式;简述哈夫曼树 (最优二叉树)的定义。 。
int getData(int k);提取第k个元素的值。
