版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(完满word版)数据构造知识点全面总结一精华版第1章绪论 内容纲要: 数据构造研究的内容。针对非数值计算的程序设计问题, 数据构造涵盖的内容:研究计算机的操作对象以及它们之间的关系和操作线性解fY筏聚、找.队、串、麟组)非线性给构辆结构图结构顺存结构 诚式结构 家索结构 能列绪检删除运算 悸改运算 春找运静 排序达身根本看法:数据、数据元素、数据对象、数据构造、数据种类、抽象数据种类 数据,全部能被计算机鉴别、储藏和办理的符号的会集。数据元素 一一是数据的根本单位,拥有完满确定的实质意义。数据对象 拥有相同性质的数据元素的会集,是数据的一个子集。数据构造 是相互之间存在一种或多种特定关系的数
2、据元素的会集,表示为: Data_Structure= D, R数据种类一一是一个值的会集和定义在该值上的一组操作的总称。抽象数据种类-一由用户定义的一个数学模型与定义在该模型上的一组操作, 它由根本的数据种类组成。算法的定义及五个特点。算法是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入变换为输出的计算步骤。算法的根本特点 :输入、输出、有穷性、确定性、可行性算法设计要求。正确性、可读性、强壮性、效率与低储藏量需求算法解析。时间复杂度、空间复杂度、牢固性 学习要点:数据构造的“三要素:逻辑构造、物理储藏构造 及在 这种构造上所定义的操作运用计算语句频度来估计算法的时间复杂度。
3、(完满word版)数据构造知识点全面总结一精华版第二章线性表内容纲要:线性表的逻辑构造定义,对线性表定义的操作。线性表的定义:用数据元素的有限序列表示is毓发夕我的Gw:是承器,上M号薪元素口印时称为一日氏声表中面粒盘:J线性表的储藏构造:次序储藏构造和链式储藏构造。次序储藏定义:把逻辑上相邻 的数据元素储藏在物理上相邻的储藏单元中的储藏构造。不用然相链式储藏构造:其结点在储藏器中的地址是随意的,即逻辑上 相邻的数据元素在物理上邻。经过指针来实现!线性表的操作在两种储藏构造中的实现。数据构造的根本运算:更正、插入、删除、查找、排序1)更正一一经过数组的下标即可接见某个特定元素弁更正之。二核心语
4、句:Vi=x;次序表更正操作的时间效率是0(1)2)插入一一在线性表的第i个地址前插入一个元素实现步骤:将第n至第i位的元素向后搬动一个地址;将要插入的元素写到第i个地址;表长加1。注意:早先应判断:插入地址i可否合法?表可否已满?应当吻合条件:1 & i =i; j-) aj+1=a j ;a i =x;n+;插,人时的平均搬动次数为:n(n+1)/2 +n+1= n/2 -O(n)3)删除一一删除线性表的第i个地址上的元素实现步骤:将第i+1至第n位的元素向前搬动一个地址;表长减1。注意:早先需要判断,删除地址 i可否合法?应当吻合条件:1W i n或 i=1, n核心语句:for ( j
5、=i+1; j=n; j+ ) aj-1=aj;n-;(完满word版)数据构造知识点全面总结一精华版序表除一元素的效率:Tn)=(n-1)/2=O(n)序表插入、除算法的平均空 复度0(1)表:1用表构来存放26个英文字母 成的性表 a, b, c, ?,z,写出 C言程序#include#include typedef struct node char data;struct node *next;node;node *p,*q,*head;int n ;int m=sizeof(node);void build()/ 一般需要3个指量/数据元素的个数/*构型定好此后,每个m求一次即可 *
6、/字母 表的生成。要一个个慢慢node型的度就固定了,入int i;head=(node*)malloc(m);p=head;for( i=1; idata=i+ ,a,-1; p-next=(node*)malloc(m);p=p-next ; p-data=i+ a -1;p-next=NULL ;void display()/ 字母 表的/m=sizeof(node)前面已求出因尾点要特别理,故i #26/第一个点字符a/后点”挖坑!指量 P指向后一个点最后一个元素要独理/表尾点的指域要置空!p=head;while (p)/当指 不空循限于无 点的情况printf(%c,p-data)
7、;p=p-next;指 不断“藤摸瓜(完满word版)数据构造知识点全面总结一精华版2单链表的更正(或读取思路:要更正第i个数据元素,必定重新指针起素来找到该结点的指针p,尔后才能:pdata=new_value读取第i个数据元素的核心语句是:Linklist *find(Linklist *head ,int i) (intj=1;Linklist *p;P=head-next;While(p!=NULL)&(jnext;j+; return p; 3.单链表的插入T结点的生成承第S= (fiode*) ma I loc Gw);S-Xala=才;S-next-p-next链表插入的核心语句
8、:Step 1 : s-next=p-next;Step 2 : p-next=s ;6.单链表的删除一 r-富 ,乎 next;/第一保存b的指针,靠它才能找到c;p-next=q-next; 将a、c两结点相连,裁汰 b结点;free(q);完整释放 b结点空间7.双向链表的插入操作:设p已指向第i元素,请在第 i元素前插入元素x:ai-1的后继从ai (指针是p)变为x指针是s): s-next = p ; p-prior-next = s ;ai的前驱从ai-1 (指针是p-prior)变为x (指针是s); s-prior =p -prior ; p-prior = s ;(完满wo
9、rd版)数据构造知识点全面总结一精华版8.双向链表的删除操作:p -next );设p指向第i个元素,删除第 i个元素后继方向:ai-1的后继由ai (指针p)变为 ai+1(指针p -prior-next = p-next ;前驱方向:ai+1的前驱由ai (指针p)变为ai-1 (指针 p - prior );p-next-prior = p -prior ;数组的逻辑构造定义及储藏数组:由一组名字相同、下标不相同的变量组成N维数组的特点:n个下标,每个元素碰到n个关系拘束一个n维数组能够看作是由假设干个n- 1维数组 组成的线性表。储藏:早先约定按某种次序将数组元素排成一列序列,尔后将这
10、个线性序列存入储藏器中在二维数组中,我们既能够规定按行储藏,也能够规定按列储藏。设一mn-般的二维数组是 Ac1.d1, c2.d2,那么行优先储藏时的地址公式为:LOC尸LOC(F )+(白尸稀罕矩阵含特别矩阵的储藏及运算。稀罕矩阵:矩阵中非零元素的个数较少一般小于5%学习要点: 线性表的逻辑构造,指线性表的数据元素间存在着线性关系。在次序储藏构造中,元素储藏的 先后地址 反响出这种线性关系,而在链式储藏构造中,是靠指针来反响这种关系的。次序储藏构造用一维数组表示,给定下标,能够存取相应元素,属于 构。随机存取的储藏结链表操作中应注意不要使链不测“断开F以,假设在某结点前插入一个元素,或删除
11、某元素,必定知道该元素的前驱结点的指针。 掌握经过画出结点图来进行链表单链表、循环链表等的生成、插入、删除、遍历 等操作。 数组主若是二维在以 行序/列序 为主的储藏中的地址计算方法。稀罕矩阵的三元组表储藏构造。稀罕矩阵的十字链表储藏方法。(完满word版)数据构造知识点全面总结一精华版补充要点:.每个储藏结点都包括两局部:数据域和指针域(链域)其直接前驱结点的链域的值指示该结点的数据域能够为空,也可存放 能够对空表、非空表的情况以及对首.在单链表中, 除了首元结点外,任一结点的储藏地址由.在链表中设置头结点有什么好处?头结点即在链表的首元结点从前附设的一个结点,表长度 等附加信息, 其作用是
12、为了对链表进行操作时, 元结点进行一致办理,编程更方便。.怎样表示空表?(1无头结点时,当头指针的值为空时表示空表;(2有头结点时,当头结点的指针域为空时表示空表。.链表的数据元素有两个域,不再是简单数据种类,编程时该怎样表示?因每个结点最少有两个重量,且数据种类平时不一致,所以要采用构造数据种类。.sizeof(x)计算变量 x的长度字节数 ;malloc(m) 一开辟m字节长度的地址空间,弁返回这段空间的首地址;free(p)释放指针p所指变量的储藏空间,即完整删除一个变量。7.链表的运算效率解析: 1查找因线性链表只能次序存取,即在查找时要重新指针找起,查找的时间复杂度为O(n)。2插入
13、和删除因线性链表不需要搬动元素,只要更正指针,一般情况下时间复杂度为O(1)。但是,若是要在单链表中进行前插或删除操作,由于要重新查找前驱结点,所耗时间复杂度将是 O(n)。例:在n个结点的单链表中要删除结点*P ,需找到它的 前驱结点的地址,其时间复杂度为 O n.次序储藏和链式储藏的差异和优缺点?次序储藏时, 逻辑上相邻的数据元素,其物理存放地址也相邻。次序储藏的优点是储藏密度大,储藏空间利用率高;缺点是插入或删除元素时不方便。链式储藏时, 相邻数据元素可随意存放,但所占储藏空间分两局部,一局部存放结点值,另一局部存放表示结点间关系的指针。链式储藏的优点是插入或删除元素时很方便,使用灵便。
14、缺点是储藏密度小,储藏空间利用率低。次序表合适于做查找这样的静态操作;链表官于做插入、删除这样的动向操作。假设线性表的长度变化不大,且其主要操作是查找,那么采用次序表;假设线性表的长度变化较大,且其主要操作是插入、删除操作,那么采用链表。.判断:“数组的办理比其他复杂的构造要简单,对吗?:对的。由于一一数组中各元素拥有一致的种类;二 数组元素的下标一般拥有 固定的上界和下界数组一旦被定义,它的维数和维界就不再 改变。数组的,根本操作比较简 单,除了结构的初始化和销毁之外,只有存取元素和更正元素值的操作。.三元素组表中的每个结点对应于稀罕矩阵的一个非零元素,它包括有三个数据项,分别 表示该元素的
15、行下标、列下标和元素花-一(完满word版)数据构造知识点全面总结一精华版.写出右所示稀罕矩的存形式。解:介 3种存形式。法1 :用性表表示:12 9(1,2,12) , (1,3,9) , (3,1,-3) , (3,5,14),(4,3,24) , (5,2,18) ,(6,1,15) , (6,4,-7)法2:用十字表表示用途:方便稀罕矩的加减运算法3:用二兀矩表7K:方法:每个非 0元素占用5个域value11Tl 14 13B 31T 3514土4324E521076115M 64,7稀罕矩存的缺点:将失去随机存取功能代:1.用数V来存放26个英文字母 成的性表a, b, c, ?,
16、z,写出在序构上生成和 示表的C言程 序。char V30;void build()字母线性表的生成,即建表操作int i;V0=a;for( i=1;i=n-1;i+ )Vi=Vi-1+1;void display( ) /字母线性表的显示,即读表操作int i;for( i=0;iM)上溢else stop+=e;次序栈出栈函数POP()status Pop( ) if(top=L) 下溢 else e=s-top;return(e);(完满word版)数据构造知识点全面总结一精华版 行列的定义及操作,行列的删除在一端队尾,而插入那么在行列的另一端队头。因此在两种储藏构造中,都需要队头和队
17、尾两个指针。行列:只幸亏表的一端进行插入运算,在表的另一端进行删除运算的线性表。链行列结点种类定义:typedef Struct QNodeQElemTypedata; / 兀素Struct QNode *next; 指向下一结点的指针Qnode , * QueuePtr ;链行列种类定义:typedef struct QueuePtrfront ; / 队首指针QueuePtrrear ; / 队尾指针 LinkQueue;链队表示图:空链队的特点:front=rear链队会满吗? 一般不会,由于删除时有入队尾部插入 :rear-next=S; rear=S;出队头部删除 :front-ne
18、xt=p-next;2.次序队次序队种类定义:free动作。除非内存缺少!#define QUEUE-MAXSIZE 100/ 最大行歹 U 长度typedef struct QElemType *base;行歹U 的基址intfront;队首指针intrear;/队尾指针g号银植出!队列,先涌吗F团在样比现人眄村出队忡d(B空队列的特征? |匐定:Irnittn*;uSqQueue建队核心语句:q . base=(QElemType *)malloc(sizeof (QElemType* QUEUE_MAXSIZE;/ 分配空间 次序队表示图:出凯匕七部删除”川 L f Qf!JDt|:(完
19、满word版)数据构造知识点全面总结一精华版循环行列:队空条件 :front = rear(初始化时:front = rear )队满条件:front = (rear+1) % N(N=maxsize)行列长度即数据元素个数:L= N + rear frontN1初始化一个空行列Status InitQueue ( SqQueue &q ) / 初始化空循环行列q(q . base=(QElemType *)malloc(sizeof(QElemType * QUEUE_MAXSIZE);/ 分配空间if (!q.base) exit(OVERFLOW);/ 内存分配失败,退出程序q.fron
20、t =q.rear=0; / 置空行歹 U return OK; /InitQueue;2入队操作Status EnQueue(SqQueue &q, QElemType e)/向循环行列q的队尾参加一个元素eif ( (q.rear+1) % QUEUE_MAXSIZE = = q.front ) return ERROR ; /队满那么上溢,无法再入队q.rear = ( q . rear + 1 ) % QUEUE_MAXSIZE;q.base q.rear = e; / 新元素 e 入队return OK;/ EnQueue;3出队操作Status DeQueue ( SqQueue
21、&q, QElemType &e) /假设行列不空,删除循环行列 q的队头元素,由e返回其值,并返回 OKif ( q.front = = q.rear ) return ERROR;/ 行列空q.front=(q.front+1) % QUEUE_MAXSIZE ;e = q.base q.front ;return OK;/ DeQueue1等于队头链行列空的条件是首尾指针相等,而循环行列满的条件的判断,那么有队尾 加和设标志两种方法。(完满word版)数据构造知识点全面总结一精华版补充要点:.为什么要设计货仓?它有什么独到用途?调用函数或子程序非它莫属;递归运算的有力工具;用于保护现场和
22、恢复现场;简化了程序设计的问题。.为什么要设计行列?它有什么独到用途?失散事件的模拟模拟事件发生的先后次序,比方 CPU芯片中的指令译码行列操作系统中的作业调换一个CPU执行多个作业;简化程序设计。.什么叫“假溢出?怎样解决?答:在次序队中,当尾指针已经到了数组的上界,不能够再有入队操作, 但其实数组中还有空地址,这就叫“假溢出-解决假溢出的路子采用循环行列。.在一个循环行列中,假设约定队首指针指向队首元素的前一个地址。那么,从循环行列中删除一个元素时,其操作是先搬动队首地址,后 取出元素。.线性表、栈、队的异同点:相同点:逻辑构造相同,都是线性的;都能够用次序储藏或链表储藏;栈和行列是两种特
23、别的线性表,即受限的线性表可是对插入、删除运算加以限制。不相同点: 运算规那么不相同:线性表为随机存取;而栈是只赞同在一端进行插入和删除运算,所以是后进先出表LIFO ;行列是只赞同在一端进行插入、另一端进行删除运算,所以是先进先出表FIFO o用途不相同,线性表比较通用;货仓用于函数调用、递归和简化设计等;行列用于失散 事件模拟、OS作业调换和简化设计等。(完满word版)数据构造知识点全面总结一精华版第四章串内容纲要:串是数据元素为字符的线性表,串的定义及操作。串即字符串,是由零个或多个字符组成的有限序列,是数据元素为单个字符的特别线性表。串 比较:int strcmp(char *s1,
24、char *s2);求串长:int strlen(char *s);串联接: char strcat(char *to,char *from)子串 T 定位: char strchr(char *s,char *c);串的储藏构造,因串是数据元素为字符的线性表,所以存在“结点大小的问题。模式般配算法 。串有三种机内表示方法:J癫一空地址连续的存储单元存储串45的字 特库科以昨志存喊叫一能式存储南一期地址设续的存礴单元存储串值的字 符序列I但在储空间是在所执行过程中动宓的块鼠存储表示-方式存储模式般配算法 :算法目的:确定主串中所含子串第一次出现的地址定位定位问题称为串的模式般配,典型函数为In
25、dex(S,T,pos)BF算法的实现一即编写Index(S, T, pos)函数BF算法设计思想:将主串S的第pos个字符和模式T的第1个字符比较,假设相等,连续逐个比较后续字符;假设不等,从主串S的下一字符pos+1起,重新与T第一个字符比较。直到主串S的一个连续子串字符序列与模式T相等。返回值为 S中与T般配的子序列第一个字符的序号,即般配成功。否那么,般配失败,返回值 0。Int Index_BP(SString S, SString T, int pos) /返回子串 T在主串S中第pos个字符此后的地址。假设不存在,那么函数值为0.其中,T 非空, K pos w StrLengt
26、h(S)i=pos;j=1;while ( i=S0 & jT0) return i-T0; /T 子串指针j正常到尾,说明般配成功,else return 0; /否那么属于iS0情况,i先到尾就不正常 /Index_BP(完满word版)数据构造知识点全面总结一精华版补充要点:.空串和空白串有无差异?答:有差异。空串(Null String)是指长度为零的串;而空白串(Blank String),是指包括一个或多个空白字符(空格键)的字符串.“空串是随意串的子串;随意串 S都是S自己的子串,除 S自己外,S的其他子串称为S的真子串。,送例自构s =* aia?.u*3h/j定长厮序存精结构
27、 串存储黯构堆存储结构I块逋存储晶构操作(或运力)老十函数的实现1 装式摩飕威:模式四忻即予串定位延算即如何丈现1曲加武氏丁亦必)函数(完满word版)数据构造知识点全面总结一精华版第六章和二叉内容纲要:是复的非性数据构,二叉的定,根本看法,。:由一个或多个(n 0)点成的有限会集T ,有且有一个 点称 根root,*1 ,其他的点分m(m )0)个互不订交的有限会集T1,T2 , ?, Tm。每个会集自己又是棵,被称作个根的子。二叉:是nn冷个点的有限会集,由一个根 点以及两棵互不 订交的、分称左子 和右子 的二叉成。P88二叉的性,存构。1:在二叉的第 i上至多有2:深度k的二叉至多有2i
28、-1个点i02k-1 个点k0性3:于任何一棵二叉,假设 2度的点数有性4:拥有n个点的完满二叉的深度必性5:完满二叉,假设从上至下、从左至右号,号2i ,其右孩子 号2i + 1 ;其双的号必二叉的存构:一、序存构n2个,叶子数 n0必然 n2+ 1i的点,其左孩子号必i/2= 1根,除外。按二叉的点“自上而下、从左至右号,用一的存元存。假设是完满/二叉 能够做到唯一复原。不是完满二叉:一律完满二叉!方法很,将各空缺上“虚点,其内容空缺点:浪空;插入、除不便二、式存构用二叉表即可方便表示。一般从根点开始存。IrH jhild ilja tkl t也皿点:不浪空;插入、除方便 二叉的遍。指依照
29、某种次序 二叉的全部点,而且每个点遍二叉由根、左子、右子组成,定假设限制先左后右,有三种 方案:一次,获取一个性序列。D、L、RDLR先序遍LDR中序遍LRD后序遍(完满word版)数据构造知识点全面总结一精华版 树的储藏构造,树、森林的遍历及和二叉树的相互变换。M域小期如何转上每时? 3一方法:加线工醺匚旋转回忆2:二叉树怎样复原为树?要点:逆操作,把全部右孩子变为兄弟!谈论1 :森林怎样转为二叉树?法一: 各森林先各自转为二叉树;依次连到前一个二叉树的右子树上法二:森林直接变兄弟,再转为二叉树谈论2:二叉树怎样复原为森林?要点:把最右边的子树变为森林,其他右子树变为兄弟树和森林的储藏方式:
30、树有三种常用储藏方式:双亲表示法孩子表示法孩子一兄弟表示法问:树一二叉树的“连线一抹线一旋转怎样由计算机自动实现?答:用“左孩子右兄弟表示法来储藏即可。firstchilncxt5iblin树、森林的遍历:.,一 l J浑省猿外洎用1芥松.后根 博 I广度优先法历长层次! 储藏的过程就是树变换为二叉树的过程!没有中序*历(W王黑不分左右) 先根遍历:接见根结点;依次先根遍历根结点的每棵子树。 后根遍历:依次后根遍历根结点的每棵子树;接见根结点。谈论:树假设采用“先变换,后遍历方式,结果可否相同?.树的先根遍历与二叉树的先序遍历相同;.树的后根遍历相当于二叉树的中序遍历;.树没有中序遍历,由于子
31、树无左右之分。森林的遍历先序遍历假设森林为空,返回;接见森林中第一棵树的根结点;先根遍历第一棵树的根结点的子树森林;先根遍历除去第一棵树此后节余的树组成的森林中序遍历假设森林为空,返回;申根遍历森林中第一棵树的根结点的子树森林;接见第一棵树的根结点;申根遍历除去第一棵树此后节余的树组成的森林(完满word版)数据构造知识点全面总结一精华版二叉的用:哈夫曼和哈夫曼。Huffman :最二叉路径度最短的Huffman :不等。呼Z -2电人;的 路径度:I中全部叶子 点的 路径 度之和构造Huffman的根本思想:大的 点用短路径, 小的 点用 路径。构造Huffman 的步 即 Huffman算
32、法:(1)由定的n个 w1, w2, ?, wn 组成n棵二叉 的会集 F = T1, T2,? , Tn 即森林,其中每棵二叉Ti中只有一个wi的根 点,其左右子 均空。(2)在F中取两棵根点 最小的做左右子构造一棵新的二叉,且新二叉根点的 等于其左右子 的根 点 之和。(3)在F中去两棵,同将新获取的二叉参加F中。(4)重复(2)和,直到F只含一棵 止。棵即是Huffman 。详尽操作步:sgj正 对咄进行合您除与替换 一葡胸傩既黑着砾耳最仔弁题明|赫痔愫再初始配合并(何 cL合并7)四步Fa(7)5Hi!H4 FilTHin F: (J|jSIS Hffl b,甜明的F用由扁加金,飞卜
33、a1rg Jna演 码11:钝血data: 找成功,return Kdata :q=p ; p=p-L_child / 向左搜 寻K p-data :q=p ;p=p-R_child /向右搜寻 /找不行功插入到二叉排序中s =(BiTree)malloc(sizeof(BiTNode);s-data=K; s -L_child=NULL; s -R_child=NULL;找不行功,生成一个新 点 s,插入到二叉排序 叶子case t=NULL :t=s; /假设t空,插入的 点 s作根点K data: q-L_child=s;/ 假设 K 比叶子小,挂左K q-data: q-R_child
34、=s; /假设 K 比叶子大,挂右return OK 二叉排序的除操作怎样?分表示*P的左、右孩子指;的左 孩子;可能有三种情况:怎样除一个点?假:*p表示被点的指;PL和PR*f表示*p的双点指;弁彳般*p是*f如为崎已 涉朦此S6悬才侬1事说*门触城值的f*扁有两报事何&小说里夏用*p有两棵子,怎样行除操作?除前的中序遍序列:?. PL s p PR f然p的直接前是s , s是*p左子最右下方的点 希望除p后,其他元素的相 地址不。有两种解决方法:*s的右子; 即fL=PL法1:令*p的左子*f 的左子,*p的右子接SR=PR ;法2:直接令*s代替*p / *s *p左子最右下方的 点
35、(完满word版)数据构造知识点全面总结一精华版二叉排序树的2(1 + tin a 平衡二叉树的定义:又称AVL树,即它或许是一颗空树,或许是它的左子树和右子树都是平衡二叉树,且左子树与右子树的深度之差的绝对值不高出1。平衡因子:一一该结点的左子树的深度减去它的右子树的深度。平衡二叉树的特点:任一结点的平衡因子只能取:-1、0或1。若是在一棵AVL树中插入一个新结点,就有可能造成失衡,此时必定重新调整树的构造,使之恢复平衡。我们称调整平衡过程为平衡旋转。平衡旋转能够归纳为四类:LL乎衡旋转:郭 修A的/子村05 &芋忖上M 人嘛餐 通上诉嘛却爆i和要1f哪LR平衡旋转:yRR平衡旋转h著曜帼钮
36、上 策点.鸣螂干事闪届&1中加者庭息的女子柑的市子树 上旭人造*.修*B6因子从I增加W(C)X *喻前籁感幡1r孑RL邛密整 |脖疾A第由这素械上需*型观疗M时时才皿,型吟学习要点:查找表是称为会集的数据构造。因元素间关系特别松弛,其操作需借助其他数据构造来 实现。本章列举了三种方法静态查找表,动向查找表实现查找表的运算。次序表因设置了监察哨使查找效率大大提高。有序表的平均查找长度不高出树的深度。查找的ASL二叉排序树的形态取决于元素的输入次序。按中序遍历可获取结点的有序序列,应熟练 掌握其建立、查找,插入和删除算法。平衡二叉树的看法,应熟练掌握手工绘制平衡二叉树。(完满word版)数据构造
37、知识点全面总结一精华版补充:.查找的过程是怎样的?K的记录,给定一个值 K,在含有 n个记录的文件中进行搜寻,搜寻一个要点字值等于 如找到那么输出该记录,否那么输出查找不行功的信息。.对查找表常用的操作有哪些?盘问某个“特定的数据元素可否在表中;盘问某个“特定的数据元素的各种属性;在查找表中插入一元素;从查找表中删除一元素。.哪些查找方法?查找方法取决于表中数据的排列方式;.怎样评估查找方法的利害?用比较次数的平均值来评估计法的利害。称为平均查找长度ASL oASL= E Pi. Ci.使用折半查找算法时,要求被查文件:采用次序存贮构造、记录按要点字递加有序.将线性表构造成二叉排序树的优点:查
38、找过程与次序构造有序表中的折半查找相似,查找效率高;中序遍历此二叉树,将会获取一个要点字的有序序列即实现了排序运算若是查找不行功,能够方便地将被查元素插入到二叉树的叶子结点上,而且插入或删除 时只要更正指针而不需搬动元素。(完满word版)数据构造知识点全面总结一精华版第九章内部排序内容纲要:排序的定,排序能够看作是 性表的一种操作排序:将一 乱无章的数据按必然的 律次排列起来。排序的分,定排序与不 定排序的定。A、B的先后次序保持不,定性一一假S两个A和B的关 字相等,但排序后称种排序算法是定的。插入排序直接插入、折半插入,索引表插入、希插入排序插入排序的根本思想是:插入fit厅有多种具体实
39、现算常:匈排半疆人错序中口软穗嫌南朝笆蔺喊 肺匚送插兼核癌每步将一个待排序的 象,按其关大小,插入到前面 已排好序的一 象的合适地址上,直到 象全部插入 止。言之,插入 排序,保子序列中随 都是排好序的。1)直接插入排序在已形成的有序表中 性找,弁在合适地址插入,把原来地址上的元素向后 移。,狷写出直接is人排序的弟间过程序列.i 131,a& 31 2?, % 1儿十6,章港磁.海嚏11:3,伉13】Q】浊门1心工,13/3期,务17$111篇任*13第:为1127,31 ,,而3f &%13, M $1 】jJL3, 5,6T9Ti:.p 0,门4311效率: 因在最坏情况下,全部元素的比
40、 次数 和0+ 1 + ?+ n-1)- O(n2) TOC o 1-5 h z 其他情况下也要考 移元素的次数。故复度O(n2)空效率:占用 1个冲元O1算法的 定性:因 25*排序后依旧在25的后边元一定直接插入排序算法的:void InsertSort ( SqList &L ) / 序表L 作直接插入排序for ( i = 2; i =L.length; i+) /假设第一个 有序 L.r0= L.ri;j=i-1 ;先将待插入的元素放入“标兵地址while L0 .keyLj.key) L,rj+1= L.rj;j-;/只要子表元素比 标兵大就不断后移L.rj+1= L.r0;直到子
41、表元素小于 标兵,将标兵送入当前要插入的地址包括插入到表首(完满word版)数据构造知识点全面总结一精华版2折半插入排序既然子表有序且为次序储藏构造,那么插入时采用折半查找定可加速。优点:比较次数大大减少,全部元素比较次数仅为O(nlog2n)。时间效率:诚然比较次数大大减少,痛惜搬动次数并未减少,所以排序效率仍为O(n2)空间效率:仍为O 1牢固 性:牢固假设记录是链表构造,用直接插入排序行否?答:行,而且无需搬动元素,时间效率更高!但请注意:单链表构造无法实现“折半查找3表插入排序根本思想: 在次序储藏构造中,给每个记录增开一个指针重量,在排序过程中将指针内容逐个更正为已经整理排序过的后继
42、记录地址。优点:在排序过程中不搬动元素,只更正指针。此方法拥有链表排序和地址排序的特点表插入排序算法解析:无需搬动记录,只要更正指针值。但由于比较次数没有减少,故时间效率仍为O(n2)空间效率必然低,由于增开了指针重量但在运算过程中没适用到更多的辅助单元牢固性:25和25*排序前后次序未变,牢固。注:此算法获取的可是一个有序链表,查找记录时只能满足次序查找方式。5希尔shell排序根本思想:先将整个待排记录序列切割成假设干子序列,分别进行直接插入排序,待整个序列中的记录“根本有序时,再对全体记录进行一次直接插入排序。优点:让要点字值小的元素能很快前移,且序列假设根本有序时,再用直接插入排序办理,时间效率会高很多。h 关键字序列 T= 2i ( 25*, 49,25 第谢华
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年吉林省龙井市《行测》考试备考题库含答案详解(夺分金卷)
- 2026年山西省汾阳市《行测》考试考前冲刺试卷附答案详解【达标题】
- 2025年黑龙江省同江市《行测》考试备考题库及完整答案详解【夺冠系列】
- 2025年河南省济源市《行测》考试备考题库(易错题)附答案详解
- 小学生近视筛查工作总结
- 2025年河南省项城市《行测》考试模拟试卷(能力提升)附答案详解
- 2026年广东省高州市《行测》考试模拟试卷带答案详解(完整版)
- 2025年湖南省洪江市《行测》考试考前冲刺试卷(考点梳理)附答案详解
- 2025年湖南省浏阳市《行测》考试考前冲刺试卷(易错题)附答案详解
- 绵阳中考音乐试题及答案
- 2024年全国职业院校技能大赛ZZ052 大数据应用与服务赛项规程以及大数据应用与服务赛项赛题1-10套
- 高三化学备考教育交流与分享
- 小说阅读理解50篇
- 2025年湖北农商行招聘笔试题及
- 微纳集成电路制造工艺 课件全套 第1-12章 绪论;硅单晶与硅晶圆制备工艺 -工艺集成与工艺流程
- 专题01整体把握-整本书阅读《唐诗三百首》名著阅读与练习
- 珠海事业单位笔试真题2025
- 谢道韫简介课件
- 《论语》十二章(高中必背篇目)
- 八年级数学上册苏科版 第一章《三角形》全等三角形的九大模型及两大构造方法 复习题(含答案)
- 外币辨别真伪培训课件
评论
0/150
提交评论