2022年《数据结构》知识点.docx
《2022年《数据结构》知识点.docx》由会员分享,可在线阅读,更多相关《2022年《数据结构》知识点.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -第 1 章 绪论 1.1 数据是表示客观事物的符号,是对客观事物的抽象,是信息的载体;对运算机科学而言,经抽象 数字化 后,能被运算机识别、储备和加工处理的客观事物均称作数据; 1.2 具有某种共同属性的数据集合称作数据对象;数据集中的元素称作数据元素,简称元素,又称结点、顶点、记录等;数据对象 =数据元素,数据元素, ,数据元素 1.3 就数据的自身结构而言,分为原子型和结构型,前者是不行分解或无须分解的数据,后者可分解为如干个数据项; 1.4 通常,数据项是无须分解或不行分解的所谓最小数据单位,数据元素是
2、作为整体对待的基本数据单位; 1.5 数据集和其上定义的一组操作合称数据类型,即,数据类型 =数据集 +一组操作 = 数据集,一组操作 明白 狭义地说,数据类型侧重于数据的值,不区分值相同的数据,忽视数据的自身结构;例. 复数类 =复数集,运算集 模和幅角; ,复数集以复数为基本元素,复数由两个数据项组成:实部和虚部或 1.6 数据集和其元素间的一组关系合称数据结构,即, 简 1.7 数据结构 =数据对象 +数据关系 = 数据对象,数据关系 数据结构的抽象描述称作规律结构;规律结构分为:集合结构;线性结构;树形结构称树结构 ;图形结构 简称图结构 ; 1.8 树结构和图结构统称非线性结构; 1
3、.9 数据结构在运算机上的详细实现称作储备结构或物理结构;储备结构分为:次序储备;链式储备;索引储备;散列储备; 1.10 数据结构和其上定义的一组操作的抽象描述合称抽象数据类型,即,抽象数据类型 =数据结构 +基本操作 =数据对象 +数据关系 +基本操作 1.11 求解问题的步骤称作算法,是合法指令的有限序列,具有以下主要特性:有穷性;确定性;可行性; 1.12 算法所用的总时间称作时间复杂度,通常用算法中执行次数最多 频度最高 的操作的执行次数 频度 或数量级表示;时间复杂度又称时间效率,但两者的高低是相反的; 1.13 算法所用最大储备量称作空间复杂度;空间复杂度又称空间效率,但两者的高
4、低是相反的; 1.14 从数量级上说,算法的时间复杂度和空间复杂度与规模 n 的某个函数同级;常见数量级由低到高排列如下:1、logan、n k、a n、n. 、n n k0,a1 对同一个详细问题,数据本身所用储备量与算法无关,通常,空间复杂度只考虑附加储备空间复杂度; 1.15 算法的性能分析主要包括时间复杂度和空间复杂度; 1.16 数据元素间的关系分为有序关系和无序关系;有序关系简称弧 或有向弧、有向边 ,无序关系简称边 或无向弧、无向边 ,分别表为 : 、 元素,元素 或 前驱后继、元素元素 1.17 k 阶斐波那契序列的定义及其化简式;f0=f1= =fk-2 =0,fk-1 =1
5、,nk 时,fn=fn-1+fn-2+ +fn-k 1.18 一元多项式的高效运算式;Pnx=p0+p1x+p2x 2+ +pnx n=p0+xp 1+x Pn-1+xpn 递推算法为: forP=pn,i=n-1;i=0;i-P*=x+=pi; 第 2 章 线性表 2.1 同类型元素的有限序列称作线性表;简记为a 1,a 2, ,a n 或 a 1,a 2, ,a n 或 第 1 页,共 9 页 - - - - - - - - - ai |i=1,2, ,n,|i=1,2, ,n-1 2.2 线性表中元素的个数称作表长,表长为0 的线性表称作空表; 2.3 在线性表中,第一个元素称作首元,它
6、没有前驱,其它元素均有唯独前驱;最终一个元素称作尾元,它没有后继,其它元素均有唯独后继;线性表的这种关系称作一对一关系,记作1:1 ;例. 既有首元又有尾元的线性表的表长1,某元素既有前驱又有后继的线性表的表长3; 2.5 用连续的一片储备空间依次次序存放线性表的元素,称作线性表的次序储备,简称次序表;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - -名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -次序表中规律相邻者的储备位置也相邻;次序表有三个要素:基址;表长 或尾元下标 ;预留表长 或最大下标 ;假如次序表的预留表长
7、是常量,可用一般数组储备 称作静态次序表,只有两个要素 ,否就,用动态数组储备 称作动态次序表 ;对于次序表,附加储备空间复杂度为 O1 ,插入、删除、查找操作的时间复杂度为 On ,其它基本操作的时间复杂度均为 O1 ; 2.6 附加“ 链” 将规律相邻数据元素的储备位置链接起来的储备结构称作链式储备;链式储备的线性表称作线性链表,简称链表;附加一个链的线性链表称作单链表;习惯上,链域指向其后继;单链表中第一个结点的地址称作头指针;作为线性链表首元的形式前驱的附加结点称作头结点;对于单链表,附加储备空间复杂度为 On ,初始化操作的时间复杂度为 O1 ,其它基本操作的时间复杂度均为 On ;
8、 2.7 静态次序表的详细实现储备结构 插入操作的核心步骤typedef struct/ 用静态数组储备的次序表 forj=L-last+;j=i-1;j-/ 后移int last;/ 尾元下标 表长 -1 L-dataj+1=L-dataj; DataType dataMAX;/MAX 为最大表长 常量 L-datai-1=x;/ 插入 x SeqList; 留意后移次序:从后向前逐个后移;初始化操作的核心步骤 删除操作的核心步骤SeqList *p=new SeqList; forj=i;jlast;j+/ 前移p-last=-1; L-dataj-1=L-dataj; L-last-;/
9、 修改表长留意前移次序:从前向后逐个前移; 2.8 单链表的详细实现返回数据元素x 地址的核心步骤 第 2 页,共 9 页 结点的储备结构typedef struct node/结点结构whileL&L-data.=xL=L-next; DataType data;/数据域return L; struct node *next;/指针域附加头结点时,改为:Lnode,*LinkList;/结点及结点的地址whileL=L-next&L-data.=x; 附加头结点初始化操作的核心步骤返回数据元素x 序号的核心步骤Lnode *L=new Lnode; int j=1; L-next=0; wh
10、ileL&L-data.=xL=L-next,j+; 求表长操作的核心步骤return L.j:0; forint j=0;L;L=L-nextj+; 附加头结点时,改为:return j; whileL=L-next&L-data.=xj+; 附加头结点时,j的初值改为 -1 或返回值改为清空操作的核心步骤j-1或Lnode *p; int j=0; whileL=L-nextj+; whilep=LL=L-next; delete p; 在结点 p 之后插入元素x 的核心步骤另外,调用后需补上语句:s=new Lnode; L=0; s-data=x; 附加头结点时,改为:s-next=p
11、-next; p-next=s; whilep=L-nextL=p-next; delete p; 删除结点p 后继的核心步骤某些操作的递归算法s=p-next; 求表长p-next=s-next; delete s; return L.1+LenL-next:0; 返回第 i 个元素地址的核心步骤清空forint j=1;jnextj+; ifLClearL-next; return i1|.L.0:L; delete L; 附加头结点时,j 的初值改为0 或int j=1; whilejnextj+; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - -
12、- - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -第 3 章 栈和队列 3.1 只许一端插入和删除的线性表称作栈,此端称作栈顶,另一端称作栈底; 3.2 栈具有先进后出的特点 FILO ,即,后进先出的特点 LIFO ; 3.3 由入栈序列“ 前 中 后 ” 不行能得到出栈序列“ 后 前 中 ” ; 3.4 只许一端插入、另端删除的线性表称作队列,答应删除的一端称作队首,另端称作队尾; 3.5 队列具有先进先出的特点 FIFO ,即,后进后出的特点 LILO ;出队序列和入队序列相同; 3.6 次序储备的栈简称次序栈;通常
13、,次序栈以表尾作为栈顶;储备结构 栈满的条件:s-top+1=MAX typedef struct/ 静态次序栈 入栈的核心步骤int top;/ 栈顶下标 或栈长 s-data+s-top=x; DataType dataMAX; 出栈的核心步骤SeqStack; return &s-datas-top-; 初始化的核心步骤 或 return s-datas-top-; Stack *s=new SeqStack; 或 x=&s-datas-top-; s-top=-1; 或 x=s-datas-top-; 栈空的条件:s-top=-1; 3.7 链式储备的栈简称链栈;通常,链栈以表头作为栈
14、顶;结点储备结构 p-next=s; s=p; typedef struct node 出栈的核心步骤DataType data; Stack p=s; s=p-next; struct node *next; *x=p-data; delete p; StackNode,*LinkStack; 清空操作栈空的条件:.L 或 L=0 Stack p; 入栈的核心步骤 whilesp=s; s=s-next; delete p; LinkStack p=new StackNodex; 3.8 由“ 入栈序列” 、“ 出栈序列” 、“ 栈操作序列” 中的任意两项可确定另一项;例. 习题 3-2 ;
15、 3.9 对于双目运算,运算符在两个操作数之前的表达式称作波兰式或前缀表达式;同理,可定义逆波兰式 或后缀表达式 ;例. 运算 4 3 + 2 1 * -和- + 4 3 * 2 1;第 4 章 串 4.1 字符串简称串;串中一段连续字符称为该串的子串;串是其子串的主串;0; 4.2 子串的第一个字符在主串中的序号称作子串在主串中的位置,并商定,非子串的位置是 4.3 查找一个串在另一串的位置简称串定位,或模式匹配,被查找的串又称模式串; 4.4 附加终止标志的定长次序储备结构为:typedef char StringMAX+1; 通常,终止标志为空字符0;j=1 时 其它情形 4.4 内嵌串
16、长的定长次序储备结构为:typedef char StringMAX+1;/s0的值为串长 4.5 KMP算法中 next 函数的运算公式为:0 nextj= maxk|1kj且t1 t k-1=tn t j-1 1 明显, next1=0,next2=1; 4.6 next函数的算法为:void NextString t,int next int i=1,j=0; next1=0; whilei0 的深度 h=log 2n+1 ;推论: n 个结点二叉树深度为 log 2n+1 n;性质 5:对于具有 n 个结点的完全二叉树,假如按层次遍历从 1 开头编号,就对编号为 i 的结点有:假如 i
17、1 ,其双亲编号为 i/2;假如 2i n,其左孩子编号为 2i ;假如 2i+1 n,其右孩子编号为 2i+1 ;假如从 0 开头编号,就对编号为 i 的结点有:双亲编号为 i-1/2、左孩子编号为 2i+1 、右孩子编号为 2i+2 ; 6.10 空树和 1 个结点的二叉树只有1 种形状, 2 个结点的二叉树有2 种形状, 3 个结点的二叉树有5细心整理归纳 精选学习资料 第 4 页,共 9 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -种形状;明白:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 2022 知识点
限制150内