数据结构知识点总结详细无题目.docx
《数据结构知识点总结详细无题目.docx》由会员分享,可在线阅读,更多相关《数据结构知识点总结详细无题目.docx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -学习必备欢迎下载数据结构学问点总结内容概要:基本概念 线性表 栈与队列 树与二叉树 图查找算法 排序算法可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 1 页,共 16 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -学习必备欢迎下载一、基本概念1、数据元素是数据的基本单位。2、数据项是数据不行分割的最小单位。3、数据结构的规律结
2、构(抽象的,与实现无关)物理结构(储备结构)次序映像(次序储备结构)位置“相邻”非次序映像(链式储备结构)指针表示关系 4、算法特性:算法具有正确性、有穷性,确定性,(可行性)、输入,输出正确性:能按设计要求解决详细问题,并得到正确的结果。有穷性:任何一条指令都只能执行有限次,即算法必需在执行有限步后终止。确定性:算法中每条指令的含义必需明确,不答应由二义性可行性:算法中待执行的操作都非常基本,算法应当在有限时间内执行完毕。可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 2 页,共 16 页 - - - - - - - - - -可
3、编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -学习必备欢迎下载输入:一个算法的输入可以包含零个或多个数据。输出:算法有一个或多个输出5、算法设计的要求:( 1)正确 性:算法应能满意设定的功能和要求。( 2)可读 性:思路清楚、层次分明、易读易懂。( 3)健壮 性:输入非法数据时应能作适当的反应和处理。( 4)高效 性(时间复杂度):解决问题时间越短,算法的效率就越高。( 5)低储备量(空间复杂度) :完成同一功能,占用储备空间应尽可能少。二、线性表1 、线性表 List:最常用且最简洁的数据结构。含有大量记录的线性表称
4、为文件。2 、线性表是 n 个数据元素的有限序列。线性结构的特点:“第一个”“最终一个”前驱 后继。3 、次序表 线性表的次序储备结构特点a) 规律上相邻的元素在物理位置上相邻。b) 随机拜访。可编辑资料 - - - 欢迎下载精品名师归纳总结1) typedef structDataType elemMAXSIZE;01L.elem.MAXSIZE-1L.length=0可编辑资料 - - - 欢迎下载精品名师归纳总结int length; SqList;L.elemL.elemL.length=MAXSIZE 0L.lengthnext= =null 循环单链表为空的判定条件为L.next=
5、 =L线性链表的最终一个结点的指针为NULL头结点的数据域为空,指针域指向第一个元素的指针。5 、次序表和单链表的比较可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 3 页,共 16 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -学习必备欢迎下载次序表单链表以的址相邻表示关系用指针表示关系随机拜访,取元素O1次序拜访,取元素On插入、删除需要移动元素On插入、删除不用移动元素On用于查找位置6 、次序储备:优点:储备
6、密度大,可随机储备缺点:大小固定。不利于增减节点;储备空间不能充分利用。容量难扩充链式储备:优点:易于插入删除。可动态申请空间。表容量仅受内存空间限制缺点:增加了储备空间的开销。不行以随机储备元素三、栈与队列1 、栈栈:限定仅在表尾进行插入或删除操作的线性表。栈顶:表尾端栈底:表头栈是先进后出的线性表。插入栈顶元素称为入栈,删除栈顶元素称为出栈。2 、栈分为链栈和次序栈链栈可编辑资料 - - - 欢迎下载精品名师归纳总结用不带头结点的单链表实现。次序栈Sanan-1.a1/可编辑资料 - - - 欢迎下载精品名师归纳总结类似于次序表,插入和删除操作固定于表尾。可编辑资料 - - - 欢迎下载精
7、品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 4 页,共 16 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -学习必备欢迎下载可编辑资料 - - - 欢迎下载精品名师归纳总结进栈: 进栈运算是在栈顶位置插入一个新x元。素算法思想: a判栈是否为满,如栈满,作溢出处理,并0。返回 b如栈未满,栈顶指t针op加1。 c将新元素x送入栈顶,并返1回。算法实现:出栈: 出栈运算是指取出栈顶元素,赋给某一个指x定。变量算法步骤:(a) 判栈是否为空,如栈空,
8、作下溢处理,并0。返回(b) 如栈非空,将栈顶元素赋给变x。量(c) 指针top减1,并返回1。可编辑资料 - - - 欢迎下载精品名师归纳总结int Push SeqSta*cs,k datatypex可编辑资料 - - - 欢迎下载精品名师归纳总结 if (s-top= =MAXLE1N)算法实现:可编辑资料 - - - 欢迎下载精品名师归纳总结return 。0 else s-to。p+/ 栈满不能入栈,且返0回datatypePop(SeqStac*ks)datatypxe;可编辑资料 - - - 欢迎下载精品名师归纳总结s-datas-top。=/x/ 栈不满,就压入元x素if SE
9、mptys 可编辑资料 - - - 欢迎下载精品名师归纳总结return 。1 / 进栈胜利,返回1return 。0/ 如栈空不能出栈,且返回0可编辑资料 - - - 欢迎下载精品名师归纳总结else x=s-datas-。top/ 栈不空就栈顶元素存*x入s-top-。可编辑资料 - - - 欢迎下载精品名师归纳总结return 。x/ 出栈胜利,返回1可编辑资料 - - - 欢迎下载精品名师归纳总结3 、队列先进先出的线性表。队尾入队对头出队答应插入的一端叫做队尾答应删除的一端叫做对头4 、链队列typedef struct queuenodedatatypedata;structque
10、uenode*next;queuenode;/ 链队结点的类型datatypetypedefstructqueuenode*front,*rear;linkqueue;/ 将头指针、尾指针封装在一起的链队可编辑资料 - - - 欢迎下载精品名师归纳总结frontprearA BJ图 4-6链队列示意图可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 5 页,共 16 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 -
11、- - - - - - - - - - -学习必备欢迎下载5 、 循环队列typedef struct DataType elemMAXSIZE;int front, rear;/队头、队尾位置 SqQueue;循环队列判定队空的条件为front=rear循环队列判定队满的条件为(rear+1)%m=front在一个循环队列中删除元素时,第一需要后移队首指针。 6 、栈与队列比较: 都是线形结构,栈的操作LIFO(后进先出),队列操 作 FIFO(先进先出)。四、树和二叉树可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 6 页,共
12、16 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -学习必备欢迎下载1. 树的定义树( Tree ):是 n (n0)个有限数据元素的集合。在任意一棵非空树T 中:(1)有且仅有一个特定的称为树根(Root)的结点,根结点无前趋结点。(2)当 n1 时,除根结点之外的其余结点被分成 mm0个互不相交的集合 T1,T2, , Tm,其中每一个集合 Ti (1 i m)本身又是一棵树,并且称为根的子树。2. 基本术语:结点的度数:结点的非空子树(即后缀)个数叫作结点的度数树叶、分支
13、结点:左(右)子树均为空二叉树的结点称作树叶否就称作分支结点。结点的层数:规定根的层数是0,其余结点的层数等于其父结点的层数加1孩子和双亲:树的深度:树的度数:树中度数最大的结点度数叫作树的度数树林:是由零个或多个不相交的树所组成的集合。3. 二叉树性质:1) 二叉树的第i 层上至多有2i-1 个结点。2) 深度为 k 的二叉树至多有2k-1 个结点。满二叉树 :深度为k,有 2k-1 个结点。完全二叉树 :给满二叉树的结点编号,从上至下,从左至右,n 个结点的完全二叉树中结点在对应满二叉树中的编号正好是从1 到 n。可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - -
14、- - - - - - - -第 7 页,共 16 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -学习必备欢迎下载3) 叶子结点n0 ,度为 2 的结点为n2, 就 n0 = n2+1。考虑结点个数:n = n0 + n1 + n2考虑分支个数:n-1 = 2n2 + n1可得 n0 = n2+1可编辑资料 - - - 欢迎下载精品名师归纳总结4) n 个结点的完全二叉树深度为log n1 。可编辑资料 - - - 欢迎下载精品名师归纳总结5) n 个结点的完全二叉树,结点按层
15、次编号可编辑资料 - - - 欢迎下载精品名师归纳总结有:i 的双亲是n / 2,假如 i = 1 时为根(无双亲) 。可编辑资料 - - - 欢迎下载精品名师归纳总结i 的左孩子是2i,假如 2in,就无左孩子。i 的右孩子是2i + 1,假如 2i + 1n 就无右孩子。4. 二叉树的储备结构次序储备结构用数组、编号i 的结点存放在i-1 处。适合于储备完全二叉树。链式储备结构二叉链表:typedef struct BTNode DataType data;struct BTNode *lchild, *rchild; BTNode, *BinTree;三叉链表:typedef struc
16、t BTNode DataType data;struct BTNode *lchild, *rchild, *parent; BTNode, *BinTree;可编辑资料 - - - 欢迎下载精品名师归纳总结lchilddatarchildlchilddataparentrchild可编辑资料 - - - 欢迎下载精品名师归纳总结在链式储备结构中,含有n 个结点的二叉链表有n+1 个空链域。5. 遍历二叉树 (先序 DLR、中序 LDR、后序 LRD)方法与 C语言描述由二叉树的递归定义可知,一棵二叉树由根结点(D)、根结点的左子树(L)和根结点的右子树( R)三部分组成。因此,只要依次遍历
17、这三部分,就可以遍历整个二叉树。一般有三种方法: 先序 前序 遍历 DLR(根左右) 、中序遍历 LDR(左根右)、 后序遍历LRD(左右根)。可编辑资料 - - - 欢迎下载精品名师归纳总结学习资料 名师精选 - - - - - - - - - -第 8 页,共 16 页 - - - - - - - - - -可编辑资料 - - - 欢迎下载精品名师归纳总结资料word 精心总结归纳 - - - - - - - - - - - -学习必备欢迎下载1 先序遍历(D LR )的递归过程void PreorderBT*T/ 先序遍历二叉树BT if T= =NULL return;/ 递归调用的终
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构知识点总结详细无题目 数据结构 知识点 总结 详细 题目
限制150内