ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据结构绪论

2022-07-03 08:00:23  阅读:123  来源: 互联网

标签:结点 绪论 元素 存储 算法 数据结构 数据


数据结构绪论

数据结构的基本概念

基本概念和术语

  • 数据:是信息的载体,是对客观事物的符号表示的集合
  • 数据元素(节点):数据的基本单位,在程序中通常作为一个整体进行考虑和处理。一个数据元素可以由若干个数据项[1]组成。(数据项是构成数据元素最小单元)
  • 数据对象:是具有相同性质的数据元素的集合,是数据的子集。 (一个数组就是数据对象)
  • 数据类型:一个值的集合和定义在此集合上的一组操作的总称。是语言对数据结构的实现,其明显或隐含地规定了数据的取值范围存储方式允许进行的运算
    • 原子类型:int、char、double等
    • 结构类型:结构体
    • 抽象数据结构:线性表、树、图等
  • 数据结构:相互之间存在一种或多种特定关系的数据元素的集合

按某种逻辑关系组成的数据元素,按一定的存储方式存储于计算机中,并在其上定义了一个运算的集合,称为一个数据结构

数据结构=数据的逻辑结构+数据的存储结构+数据的运算(算法)

数据结构三要素

  • 数据的逻辑结构:数据元素之间的逻辑关系,与数据的存储无关
    • 线性结构:一般线性表、受限线性表(栈 队列 串)、线性表的推广(数组)
    • 非线性结构:集合、树形结构(一般树 二叉树)、图状结构(有向图 无向图)
  • 数据的存储结构(物理结构):数据结构在计算机中的表示,包括存储各节点的数值和存储结点与结点之间的逻辑关系
    • 顺序存储:逻辑上相邻的元素存储在物理上相邻的存储单元,其元素之间的逻辑关系由存储单元地址间的关系隐含表示。随机存取,但用相邻的一片存储空间产生外部碎片
    • 链式存储:结点增加指针字段,用于存放临近结点的存储地址,只能顺序存取
    • 索引存储:在存储结点的同时,增加索引表,索引表的索引项为:(关键字,地址),关键字标识结点,地址为结点的指针。各结点的地址在索引表中是依次排列的。
    • 散列存储(哈希hash):根据结点的值确定结点的存储地址。以结点作为自变量,通过散列函数算出结果i,再把i作为结点的存储地址。
  • 数据的运算
    • 运算的定义
    • 运算的实现

算法和算法的评价

算法的基本概念

  • :algorithm,是对特定问题求解步骤的描述,是指令的有限序列,每条指令包含一个或多个操作。

  • 重要特征

    • 有穷性:有限的步骤和有限的时间内完成
    • 确定性:每个指令有确定的含义
    • 可行性:算法是可以实现的
    • 输入:0个或多个输入
    • 输出:一个或多个输出
  • “好算法”的标准

    • 正确性:正确地解决问题
    • 可读性:
    • 健壮性:输入非法数据,能够做出反应
    • 效率与低存储量需求

算法效率的度量

  • 时间复杂度:当n(问题规模)趋于无穷大时,T(n)的数量级。记作T(n)=O(f(n)), O的含义是T(n)的数量级。
    • 频度:某语句在算法中被执行的次数
    • T(n):所有语句的频度之和,n为问题规模
    • O(1) < O(log2n) < O(n) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)
  • 空间复杂度: 指该算法所耗费的存储空间。计算公式计作:S(n) = O(f(n))。其中 n 也为数据的规模,f(n) 在这里指的是 n 所占存储空间的函数。
  • 算法原地工作:算法所需的辅助空间为常数O(1)

时间复杂度的计算

  • 渐进时间复杂度:(asymptotic time complexity)就是当n趋于无穷大的时候,f(n) 得到的极限值。

  1. 数据元素与数据项关系:在结构体数据中(假设学生记录),一个学生记录(数据元素)包含若干学生的信息(如学号、姓名),每个信息就是一个数据项 ↩︎

标签:结点,绪论,元素,存储,算法,数据结构,数据
来源: https://www.cnblogs.com/idealblue/p/16439172.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有