数据结构c语言版知识点概括.docx 12页

  • 1
  • 0
  • 0
  • 约2.07万字
  • 2020-10-24 发布
文档工具:
    1. 1、本文档共12页,可阅读全部内容。
    2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
    3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
    4. 文档侵权举报电话:19940600175。
    数据结构知识点概括 第一章概论 数据就是指能够被计算机 识别、存储和加工处理的信息的载体。 数据元素是数据的 基本单位,可以由若干个数据项组成。数据项是具有独立含义的最小 标识单位。 数据结构的定义: ?逻辑结构:从逻辑结构上描述数据,独立于计算机。 ?线性结构:一对一关系。 ?线性结构:多对多关系。 ?存储结构:是逻辑结构用计算机语言的实现。?顺序存储结构:如数组。 ?链式存储结构:如链表。 ?索引存储结构:?稠密索引:每个结点都有索引项。 ?稀疏索引:每组结点都有索引项。 ?散列存储结构:如散列表。 ?数据运算。 ?对数据的操作。定义在逻辑结构上,每种逻辑结构都有一个运算集合。 ?常用的有:检索、插入、删除、更新、排序。 数据类型:是一个值的集合以及在这些值上定义的 一组操作的总称。 ?结构类型:由用户借助于描述机制定义,是导岀类型。 抽象数据类型 ADT : ?是抽象数据的组织和与之的操作。相当于在概念层上描述问 题。 ?优点是将数据和操作封装在一起实现了信息隐藏。 程序设计的实质是对实际问题选择一种好的数据结构, 设计一个好的算法。算法取决于 数据结构。 算法是一个良定义的计算过程,以一个或多个值输入,并以一个或多个值输岀。 评价算法的好坏的因素:?算法是正确的; ?执行算法的时间; ?执行算法的存储空间(主要是辅助存储空间) ; ?算法易于理解、编码、调试。 时间复杂度:是某个算法的时间耗费,它是该算法所求解问题规模 n的函数。 渐近时间复杂度:是指当问题规模趋向无穷大时,该算法时间复杂度的数量级。 评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度 。 算法中语句的频度不仅与问题规模有关,还与输入实例中各元素的取值相关。 时间复杂度按数量级递增排列依次为:常数阶 0( 1)、对数阶0 (Iog2n )、线性阶 0 (n)、线性对数阶 0 (nlog2n )、平方阶0 (nA2)、立方阶0 ( nA3)、……k次方阶0 (n^k)、指数阶 0 (2An) 空间复杂度:是某个算法的空间耗费,它是该算法所求解问题规模 n的函数。 算法的时间复杂度和空间复杂度合称算法复杂度。 第二章线性表 线性表是由n>0个数据元素组成的有限序列。 n=0是空表;非空表,只能有一个开始结点,有且只能有一个终端结点。 线性表上定义的基本运算: ?构造空表:Initlist (L) ?求表长:Listlength ( L) ?取结点:GetNode ( L,i) ?查找:LocateNode (L,x) ?插入:InsertList (L, x,i) ?删除:Delete ( L,i) 顺序表是按线性表的逻辑结构次序依次存放在一组地址连续的存储单元中。在存储 单元中的各元素的物理位置和 逻辑结构中各结点相邻关系是一致的。地址计算: LOCa (i) =LOCa (1) + (i-1 ) *d ; (首地址为1) 在顺序表中实现的基本运算: ?插入:平均移动结点次数为 n/2;平均时间复杂度均为 0 (n)。 ?删除:平均移动结点次数为(n-1) /2;平均时间复杂度均为 0 (n) 线性表的链式存储结构中结点的逻辑次序和物理次序不一定相同, 为了能正确表示 结点间的逻辑关系,在存储每个结点值的同时, 还存储了其后继结点的地址信息 (即指 针或链)这两部分信息组成链表中的结点结构。 一个单链表由头指针的名字来命名。 单链表运算: ?建立单链表?头插法:s->next=head; head=s;生成的顺序与输入顺序相反。平均时 间复杂度均为0 (n)。 ?尾插法: head=rear=null ; if (head=null) head=s; else r->next=s ; r=s ; 平均时间复 杂度均为0 ( n) ?加头结点的算法:对开始结点的操作无需特殊处理,统一了空表和非空表。 ?查找?按序号:与查找位置有关,平均时间复杂度均为 0 (n)。 ?按值:与输入实例有关,平均时间复杂度均为 0 (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 ),不用 遍历整个链表。 双链表就是双向链表,就是在单链表的每个结点里再增加一个指向其直接前趋的指 针域pr

    文档评论(0)

    • 内容提供方:zhaoxiaoj
    • 审核时间:2020-10-24
    • 审核编号:7036003002003011

    相似文档