电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据结构知识点总结

11页
  • 卖家[上传人]:鲁**
  • 文档编号:512206246
  • 上传时间:2023-09-02
  • 文档格式:DOCX
  • 文档大小:46.26KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、数据结构知识点概括第一章概论数据就是指能够被计算机识别、存储和加工处理的信息的载体。数据元素是数据的基本单位,可以由若干个数据项组成。数据项是具有独立含义的最小标识单位。数据结构的定义:逻辑结构:从逻辑结构上描述数据,独立于计算机。线性结构:一对一关系。线性结构:多对多关系。存储结构:是逻辑结构用计算机语言的实现。顺序存储结构:如数组。链式存储结构:如链表。索引存储结构:稠密索引:每个结点都有索引项。稀疏索引:每组结点都有索引项。散列存储结构:如散列表。数据运算。对数据的操作。定义在逻辑结构上,每种逻辑结构都有一个运算集合。常用的有:检索、插入、删除、更新、排序。数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。结构类型:由用户借助于描述机制定义,是导出类型。抽象数据类型ADT: 是抽象数据的组织和与之的操作。相当于在概念层上描述问题。优点是将数据和操作封装在一起实现了信息隐藏。程序设计的实质是对实际问题选择一种好的数据结构,设计一个好的算法。算法取决于数据结构。算法是一个良定义的计算过程,以一个或多个值输入,并以一个或多个值输出。评价算法的好坏的因素:算法是正确的;执行算法

      2、的时间;执行算法的存储空间(主要是辅助存储空间);算法易于理解、编码、调试。时间复杂度:是某个算法的时间耗费,它是该算法所求解问题规模n的函数。渐近时间复杂度:是指当问题规模趋向无穷大时,该算法时间复杂度的数量级。评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度。算法中语句的频度不仅与问题规模有关,还与输入实例中各元素的取值相关。时间复杂度按数量级递增排列依次为:常数阶0(1)、对数阶O(log2n)、线性阶O (n)、线性对数阶O (nlog2n)、平方阶O (M2)、立方阶O (M3 )、 k次方阶O (nAk)指数阶O (2An)o空间复杂度:是某个算法的空间耗费,它是该算法所求解问题规模n的函数。算法的时间复杂度和空间复杂度合称算法复杂度。第二章线性表线性表是由nN0个数据元素组成的有限序列。n=0是空表;非空表,只能有一个开始结点,有且只能有一个终端结点。线性表上定义的基本运算:构造空表:Initlist (L)求表长:Listlength (L)取结点:GetNode (L,i)查找:LocateNode (L, x)插入:InsertList (L, x, i)

      3、册J除:Delete (L,i)顺序表是按线性表的逻辑结构次序依次存放在一组地址连续的存储单元中。在存储单元中的各元素的物理位置和逻辑结构中各结点相邻关系是一致的。地址计算:LOCa (i) =LOCa (1) + (i-1) *d;(首地址为1) 在顺序表中实现的基本运算:插入:平均移动结点次数为n/2;平均时间复杂度均为O (n)。删除:平均移动结点次数为(n-1) /2;平均时间复杂度均为O (n)。线性表的链式存储结构中结点的逻辑次序和物理次序不一定相同,为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还存储了其后继 结点的地址信息(即指针或链)。这两部分信息组成链表中的结点结构。一个单链表由头指针的名字来命名。单链表运算:建立单链表头插法:s-next=head; head=s;生成的顺序与输入顺序相反。平均时间复杂度均为O (n)。尾插法:head=rear=null; if (head=null) head=s ; else r-next=s; r=s; 平均时间复杂度均为 O (n)加头结点的算法:对开始结点的操作无需特殊处理,统一了空表和非空表。查找按序号:与

      4、查找位置有关,平均时间复杂度均为O (n)。按值:与输入实例有关,平均时间复杂度均为O (n)。插入运算:p=GetNode (L, i-1); s-next=p-next; p-next=s;平均时间复杂度均为 O (n)删除运算:p=GetNode (L, i-1); r=p-next; p-next=r-next; free (r);平均时间复杂度均为 O (n)单循环链表是一种首尾相接的单链表,终端结点的指针域指向开始结点或头结点。链表终止条件是以指针等于头指针或尾指针。采用单循环链表在实用中多采用尾指针表示单循环链表。优点是查找头指针和尾指针的时间都是O (1),不用遍历整个链表。双链表就是双向链表,就是在单链表的每个结点里再增加一个指向其直接前趋的指针域prior,形成两条不同方 向的链。由头指针head惟一确定。双链表也可以头尾相链接构成双(向)循环链表。双链表上的插入和删除时间复杂度均为O (1)。顺序表和链表的比较:基于空间:顺序表的存储空间是静态分配,存储密度为1;适于线性表事先确定其大小时采用。链表的存储空间是动态分配,存储密度1;适于线性表长度变化大时采用。基于

      5、时间:顺序表是随机存储结构,当线性表的操作主要是查找时,宜采用。以插入和删除操作为主的线性表宜采用链表做存储结构。若插入和删除主要发生在表的首尾两端,则宜采用尾指针表示的单循环链表。第三章栈和队列栈(Stack)是仅限制在表的一端进行插入和删除运算的线性表,称插入、删除这一端为栈顶,另一端称为栈底。表中无元素时为空栈。栈的修改是 按后进先出的原则进行的,我们又称栈为LIFO表(LastIn First Out九通常栈有 顺序栈和链栈两种存储结构。栈的基本运算有六种:构造空栈:InitStack (S)判栈空:StackEmpty (S)判栈满:StackFull (S)进栈:Push (S,x)退栈:Pop (S)取栈顶元素:StackTop (S)在顺序栈中有“上溢”和“下溢”的现象。“上溢”是栈顶指针指出栈的外面是出错状态。“下溢”可以表示栈为空栈,因此用来作为控制转移的条件。顺序栈中的基本操作有六种:构造空栈判栈空判栈满进栈退栈取栈顶元素链栈则没有上溢的限制,因此进栈不要判栈满。链栈不需要在头部附加头结点,只要有链表的头指针就可以了。链栈中的基本操作有五种:构造空栈判栈空进栈退栈

      6、取栈顶元素队列(Q ueue)是一种运算受限的线性表,插入在表的一端进行,而删除在表的另一端进行,允许删除的一端称为队头(front),允许插入的一端称为队尾(rear),队列的操作原则是先进先出的,又称作FIFO表(First InFirst Out).队列也有顺序存储和链式存储两种存储结构。队列的基本运算有六种: 置空队:InitQueue (Q)判队空:QueueEmpty (Q)判队满:QueueFull (Q)入队:EnQueue (Q, x)出队:DeQueue (Q)取队头元素:QueueFront (Q)顺序队列的“假上溢”现象:由于头尾指针不断前移,超出向量空间。这时整个向量空间及队列是空的却产生了“上溢”现象。为了克服“假上溢”现象引入循环向量的概念,是把向量空间形成一个头尾相接的环形,这时队列称循环队列。判定循环队列是空还是满,方法有三种:一种是另设一个布尔变量来判断;第二种是少用一个元素空间,入队时先测试(rear+1) %m = front)?满:空;第三种就是用一个计数器记录队列中的元素的总数。队列的链式存储结构称为链队列,一个链队列就是一个操作受限的单链表

      7、。为了便于在表尾进行插入(入队)的 操作,在表尾增加一个尾指针,一个链队列就由一个头指针和一个尾指针唯一地确定。链队列不存在队满和上溢 的问题。在链队列的出队算法中,要注意当原队中只有一个结点时,出队后要同进修改头尾指针并使队列变空。第四章串串是零个或多个字符组成的有限序列。空串:是指长度为零的串,也就是串中不包含任何字符(结点)。空白串:指串中包含一个或多个空格字符的串。在一个串中任意个连续字符组成的子序列称为该串的子串,包含子串的串就称为主串。子串在主串中的序号就是指子串在主串中首次出现的位置。空串是任意串的子串,任意串是自身的子串。串分为两种:串常量在程序中只能引用不能改变;串变量的值可以改变。串的基本运算有:求串长strlen (char*s)串复制 strcpy (char*to,char*from)串联接 strcat (char*to, char*from)串 比较 charcmp (char*s1, char*s2)字符定位 strchr (char*s, charc)串是特殊的线性表(结点是字符),所以串的存储结构与线性表的存储结构类似。串的顺序存储结构简称为顺序串。

      8、顺序串又可按存储分配的不同分为:静态存储分配:直接用定长的字符数组来定义。优点是涉及串长的操作速度 快,但不适合插入、链接操作。动态存储分配:是在定义串时不分配存储空间,需要使用时按所需串的长度分配存储单元。串的链式存储就是用单链表的方式存储串值,串的这种链式存储结构简称为链串。链串与单链表的差异只是它的结点数据域为单个字符。为了解决“存储密度”低的状况,可以让一个结点存储多个字符,即结点的大小。顺序串上子串定位的运算:又称串的“模式匹配”或“串匹配”,是在主串中查找出子串出现的位置。在串匹配中,将主串称为目标(串),子串称 为模式(串)。这是比较容易理解的,串匹配问题就是找出给定模式串P在给定目标串T中首次出现的有效位移或者是全部有效位移。最坏的情况下时 间复杂度是O (n-m+1) m),假如m与n同阶的话则它是O (M2)。链串上的子串定位运算位移是结点地址而不是整数第五章多维数组数组一般用顺序存储的方式表示。存储的方式有:行优先顺序,也就是把数组逐行依次排列。PASCAL、C列优先顺序,就是把数组逐列依次排列。FORTRAN地址的计算方法:按行优先顺序排列的数组:LOCa(ij

      9、)=LOCa (11) +(i-1) *n+(j-1) *d.按列优先顺序排列的数组:LOCa(ij)=LOCa (11) +(j-1) *n+(i-1) *d.矩阵的压缩存储:为多个相同的非零元素分配一个存储空间;对零元素不分配空间。特殊矩阵的概念:所谓特殊矩阵是指非零元素或零元素分布有一定规律的矩阵。稀疏矩阵的概念:一个矩阵中若其非零元素的个数远远小于零元素的个数,则该矩阵称为稀疏矩阵。特殊矩阵的类型:对称矩阵:满足a (ij) =a (ji)。元素总数n (n+1) /2.I=max (i,j),J=min (i,j),LOCa (ij) =LOC (sa0) + (I* (I+1) /2+J) *d.三角矩阵:上三角阵:k=i* (2n-i+1) /2+j-i,LOCa (ij) =LOC (sa0) +k*d.下三角阵:k=i* (i+1) /2+j,LOCa (ij) =LOC (sa0) +k*d.对角矩阵:k=2i+j,LOCa (ij) =LOC (sa0) +k*d.稀疏矩阵的压缩存储方式用三元组表把非零元素的值和它所在的行号列号做为一个结点存放在一起,用这些结点组成的一个线性表来表示。但这种 压缩存储方式将失去随机存储功能。加入行表记录每行的非零元素在三元组表中的 起始位置,即带行表的三元组表。第六章树树是n个结点的有限集合,非空时必须满足:只有一个称为根

      《数据结构知识点总结》由会员鲁**分享,可在线阅读,更多相关《数据结构知识点总结》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.