ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:20.94KB ,
资源ID:10766499      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10766499.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大数据结构C语言版 知识点串联.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大数据结构C语言版 知识点串联.docx

1、大数据结构C语言版 知识点串联第一章 绪论逻辑结构:线性结构(2 线性表;3 栈和队列;4 数组和广义表;5 串)和非线性(6 树;7 图)8 查找 ;9 排序存储结构:顺序存储、链式存储、索引存储、散列存储顺序存储和链式存储的优缺点: 顺序存储优点:存取方式是随机的,读取数据比较方便缺点:插入和删除操作需要移动大量的数据 链式存储方式的优缺点与顺序相反。判断算法好坏的标准:时间复杂度和空间复杂度第二章 线性表线性表:由n(n=0)个相同数据类型的元素组成的有限序列。逻辑特征:(1:1) 第一个结点是开始结点,无前驱有唯一的后继 最后一个结点是终端节点,无后继有唯一的前驱 中间结点,有唯一前驱

2、和唯一的后继逻辑结构的定义方式:(元素1,元素2,。)存储结构:(物理结构) 顺序存储(用数组体现):预先分配一段连续的区域,静态分配 int a10; a表示a0的地址 顺序表:两层含义:逻辑结构上线性结构 物理上顺序存储 链式存储(用指针):占用的区域不一定连续,动态分配;malloc free 链表:两层含义:逻辑结构上线性结构 物理上链式存储顺序表的插入:maxsize表示最多存放的元素的个数,size表示有效元素的个数1、 判断满不满:满的条件:size= =maxsize2、 插入的位置是不是合法(i=1&i=size+1)3、 后移(先移动后面的)4、 插入 size+;顺序表的

3、删除:1、 判断空间是否是空 (size= =0)2、 判断位置是不是合法 (1=idata=X;3、 s-next=p-next;(修改新结点的指针)4、 P-next=s;链表的删除:p结点的后面的结点1、 q=p-next;2、 p-next=q-next; /p-next=p-next-next;3、 free(q);删除p结点本身:A、 寻找p结点的前驱结点,转化为删除p结点的前驱结点的后继q=head;while(q-next!=p) q=q-next;q-next=p-next;free(p);B、 删除p的后继(p结点不是终端结点,p一定要有后继)q=p-next;p-data

4、=q-data;p-next=q-next;free(q);第三章 栈和队列栈和队列是特殊的线性表。特殊在插入和删除操作都是在表的端点处进行。栈Stack:操作受限(插入和删除)的线性表。在线性表的末尾做插入和删除,叫做栈顶top 线性表的开始部分叫做栈底 bottom特点:FILO典型应用:函数的调用存储方式: 顺序存储(用数组体现,静态分配存储空间) 链式存储(涉及到指针,动态分配存储空间)顺序栈的插入:top表示栈顶元素的下标,定义是int类型的,格式是int top;maxsize表示空间的大小,最多存放多少个元素(在顺序表的基础上修改的,红颜色粗体部分去掉)1、 判断满不满:满的条件

5、是top= = maxsize-12、 插入的位置是不是合法(i=1&i=size+1):去掉 原因是位置固定 size+13、 后移(先移动后面的):去掉4、 top+;插入(datatop=X)顺序栈的删除:(在顺序表的基础上修改的,红颜色粗体部分去掉)1、 判断空间是否是空 (top= =-1 top0)2、 判断位置是不是合法 (1=idata=X;3、 修改指针:s-next=top;(先修改的是新结点的指针)4、 修改top指针:top=s;链栈的删除:1、 p=top;2、 top=top-next;3、 free(p);进栈的顺序是123,则可能的出栈的顺序是123、132、2

6、13、231、312、321进栈的顺序是1234,则可能的出栈的顺序是1234、1243、1324、1342、1432、2134、2143、2314、2341、2431、3214、3241、3421、4321队列:1、 定义:操作受限的线性表(在表的一端进行插入、在另一端进行删除)2、 在线性表的末尾进行插入操作,叫做队尾 rear在线性表的开始做删除操作,叫做队头 front3、 特点:FIFO4、 存储结构: 顺序存储(用数组体现,静态分配存储空间) 链式存储(用指针体现,动态分配存储空间)入队列的顺序是1234,则出队的顺序是1234。循环队列:队列的顺序存储结构循环队列长度是maxsi

7、ze,则最多存放maxsize-1个元素 Front表示:队头元素的前一个位置 Rear:队尾元素的下标循环队列空的条件是:front= = rear循环队列满的条件是:front=(rear+1)%maxsize循环队列的元素的个数是:(rear-front+maxsize)%maxsize循环队列的队头元素的下标:(front+1)%maxsize备注:凡涉及到+1,都要%maxsize顺序队列的插入:(在顺序表的基础上修改的,红颜色粗体部分去掉)1、 判断满不满:满的条件:front= =(rear+1)%maxsize2、 插入:rear=(rear+1)%maxsize datare

8、ar=X;顺序队列的删除:(在顺序表的基础上修改的,红颜色粗体部分去掉)1、 判断空间是否是空:空的条件是front= =rear2、 删除:front=(front+1)%maxsize链队列:队列的链式存储结构Front表示的队头元素的指针Rear表示队尾的指针链队列的插入操作:1、 p=malloc();2、 p-data=X;3、 p-next=NULL;(先修改新产生结点的指针)4、 rear-next=p;5、 rear=p;链队列的删除:(带头结点的队列)一、 删除真正的队头元素1、 判断队列是否为空:空的条件是front= = rear2、 s=front-next;3、 fr

9、ont-next=s-next;4、 free(s);二、 通过删除头结点 转化为删除队头元素1、 判断队列是否为空:空的条件是front= = rear2、 s=front;3、 front=front-next;4、 free(s);练习:(10,20,30)1、 线性表,画出带头结点的单链表2、 栈,分别画出顺序存储结构 链式存储结构3、 队列,分别画出顺序存储结构 链式存储结构第四章 数组和广义表数组:两种操作(查找和修改)两种存储结构:按行优先、按列优先运算:计算地址、计算按行优先时的地址按列优先时是哪个元素广义表:(不考) 表头一定是原子。 () 表头一定是广义表。 () 表尾一定

10、是原子。() 表尾一定是广义表。()第五章 串两个串相等的充要条件是:串长相等并且对应位置上的字符要相同。空串和空白串区别:串的运算:串的链接、求子串、求子串在主串中的位置(模式匹配)、串的比较、串的复制、串的替换 等等。Int a=”123”; ()Int a10; a=”123”; ()Char name10=”gmm”;For(i=0;i=0)个结点组成的有限集合。对于非空树来说:有且仅有一个根结点;子树由t1,t2.。互斥的集合。2、术语:结点的度、树的度、树的高度、路径、路径的长度、树的路径长度、树的带权路径长度3、树的存储:双亲表示法、孩子表示法、双亲孩子表示法、孩子兄弟表示法二叉

11、树:判断:二叉树是树;是度为2的树;是特殊的树;是度为2 的有序树。()5个性质:性质1:二叉树第i层上最多2i-1(数学归纳法)性质2:深度为k的二叉树上最多2k-1(等比数列)性质3:二叉树上度为0的节点有n0个,度为2的节点有n2个,则n0=n2+1 (N=n0+n1+n2=0*n0+1*n1+2*n2+1)满二叉树 完全二叉树 满二叉树一定是完全二叉树。() 完全二叉树一定是满二叉树。() 完全二叉树的结点如果有左孩子,则它一定有右孩子。() 完全二叉树的结点如果有右孩子,则它一定有左孩子。()性质4:有n个节点的完全二叉树,深度为:。(假设深度k,2k-1-1+1n2k-1) 性质5

12、:把完全二叉树编码,从上到下,同一层上从左向右, I=1:是根结点,没有双亲;i1:有双亲,双亲编码是i/2; I:2i是左孩子,如果存在右孩子,则右孩子的编码是2i+1; I:2i+1是它的右孩子,左孩子的编码是2i。练习:1、有1001个结点的完全二叉树,树的高度为( ),其中叶子结点的个数为( ),度为1的结点的个数为( ),度为2的结点的个数为( )。2、已知二叉树有52个叶子结点,度为1的结点个数为30则总结点个数为()。二叉树的存储: 顺序存储- 完全二叉树的存储(下表为0的空间没用 性质5来判断双亲和孩子的关系) 链式存储(二叉链表、带双亲的二叉链表(三叉链表)- 一般二叉树二叉

13、树的遍历:先序遍历(第一个节点是根结点)、中序遍历(来判断左右子树的结点)、后序遍历(最后一个节点是根结点)根据先序和中序、中序和后序得到二叉树。练习:1、已知二叉树的中序遍历序列是ACBDGHFE,后序遍历序列是ABDCFHEG,请构造一棵二叉树。2、已知二叉树的层次遍历序列为ABCDEFGHIJK,中序序列为DBGEHJACIKF,请构造一棵二叉树。3、已知二叉树的前序、中序和后序遍历序列如下,其中有一些看不清的字母用*表示,请先填写*处的字母,再构造一棵符合条件的二叉树。 (1)前序遍历序列是:*BC*G* (2)中序遍历序列是:CB*EAGH* (3)后序遍历序列是:*EDB*FA树、

14、森林和二叉树之间的转换: 树- 二叉树:加线、抹线、调整(结论:转换后的二叉树没有右子树) 二叉树- 树:加线、抹线、调整 森林- 二叉树: 二叉树- 森林:树、森林和二叉树的遍历1、树的先跟遍历次序与它所对应的二叉树的先序遍历次序相同;2、树的后跟遍历次序与它所对应的二叉树的中序遍历次序相同;3、森林的先序遍历次序与它所对应的二叉树的先序遍历次序相同;4、森林的中序遍历次序与它所对应的二叉树的中序遍历次序相同;哈弗曼树及其编码: 术语:路径、路径的长度、树的路径长度(从根结点到每一个叶子结点的路径长度之和)、带权路径长度(根结点到叶子结点的路径长度*权值 和) 构造:每次找两个权值最小的结点

15、进行合并,得到的新节点的权值放到最后,循环合并,直到只剩下一个结点的时候结束过程,这时候的二叉树就是所求的最优二叉树(哈夫曼树)。 哈弗曼编码:左分支为0 右分支为1,从根结点到叶子结点所经过的边的编码就是它所对应的哈弗曼编码。第七章 图1、定义: 图:Graph 两个集合V(vertex) E 有向图:V E 弧头(箭头指向谁 终点) 弧尾(起点) 无向图: (V,W)= =(W,V)2、术语: 完全图(任意两个定点之间都有边 无向图 n*(n-1)/2 有向图 n*(n-1)) 结点的度:与这个顶点相关联的边的条数 入度:针对的有向图 以这个顶点为弧头 出度:针对有向图 以这个顶点为弧尾

16、边的个数:所有顶点的度的总和/2 连通图:如果两个顶点之间有路径,那么这两个顶点就是连通的连通图:无向图 任意两个顶点之间都有路径判断: 完全图一定是连通图()连通图一定是完全图() 连通分量:非连通图的极大连通子图 强连通图 强连通分量 :有向图 生成树:连通图,有n个顶点,至少需要n-1边使得它连通连通图的极小连通子图3、 图的存储:(1)邻接矩阵:如果有n个顶点的无向图,存储空间压缩 n*(n+1)/2如果有n个顶点的有向图,存储空间不能压缩 n*n有向图的连接矩阵 第i行非零元素的个数- 出度第i列非零元素的个数- 入度无向图的连接矩阵:第i行(或者列)非零元素的个数- 度(2)邻接表

17、:无向图中顶点Vi的度是邻接表中结点的个数;有向图中,顶点Vi的出度是邻接表中结点的个数; 顶点Vi的入度是逆邻接表中结点的个数。图的遍历:深度遍历 广度遍历生成树:深度遍历的生成树 广度遍历生成树最小生成树: Prim:把顶点分为两个集合,分别从这两个集合中各找出一个顶点,使得这两个顶点之间的边的权值是最小的,把绿颜色顶点合并到黄颜色中,继续。,直到所有顶点都合并到黄颜色中为止。 Kruscal:把顶点分别作为集合,每次从边的集合中查找权值最小的两个顶点:如果这两个顶点分属于不同集合,合并;如果这两个顶点分属于同一集合,继续查找下一条权值较小的边。最短路径:迪杰斯特拉算法 第一条最短路径:在

18、所有的直达路径中,找出最短的一条路径 在后面的最短路径:要么直达;要么经过已经求出的最短路径的顶点。拓扑结构:主要用于查看工序之间的前驱后继的关系。AOV网第八章 查找1、线性表的查找(静态查找) 顺序查找:顺序表 链表 折半查找(二分查找):有序的顺序表2、树表的查找(动态查找):二叉排序树(二叉查找树)(1)定义:可以是空树,如果非空,满足3个条件。(2)查找(3)插入(作为叶子结点插入)(4)删除(3种情况): 删除叶子结点:直接删除,修改其双亲的左指针或者右指针为NULL 删除只有左子树或者只有右子树:修改其双亲直接指向其左孩子或者右孩子 删除既有左子树又有右子树:用中序遍历的前驱结点代替删除结点,然后删除前驱结点。第九章 排序1、定义: 分类:内部排序、外部排序稳定性:2、重点排序方法 插入排序:直接插入排序(稳定)、希尔排序(不稳定) 交换排序:冒泡排序(稳定)、快速排序(不稳定) 选择排序:简单选择排序(稳定) 归并排序:2路归并排序(稳定)Memory:Storage:CPU:Centrol Processing Unit OS:Operating System操作系统的功能:作业管理 进程管理 存储管理 文件管理 设备管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1