数据的逻辑结构类型、存储结构类型、抽象数据类型

一、逻辑结构类型

  1. 集合:数据元素间仅同属一个集合无其他关系。
  2. 线性结构1:1关系,开始和终端节点都是唯一的除了开始节点和终端节点以外,其余节点都有且仅有一个前驱节点有且仅有一个后继节点
  3. 树形结构1:n关系开始节点唯一,终端节点不唯一。除终端节点以外,每个节点有一个或多个后续节点;除开始节点外,每个节点有且仅有一个前驱节点。
  4. 图形结构n:n关系,没有开始节点和终端节点,所有节点都可能有多个前驱节点和多个后继节点。

二、存储结构类型

  1. 顺序存储:利用数组实现,空间利用率高。
  2. 链式存储:利用指针实现,便于增删调整修改。
  3. 索引存储:利用索引项实现,索引项包括关键字和地址,查找速度快,但是存储索引项会增加空间支出。
  4. 散列、哈希存储:利用哈希公式等计算并存储数值为地址,作为快速查找的依据,但是缺点是存储数值会占用大量空间,并且仅保存数据数值,不保存数据的逻辑关系。

三、抽象数据类型

抽象数据类型,即Abstract Data Type,简写为ADT。

它指的是用户进行软件系统设计时从问题的数学模型中抽象出来的逻辑数据结构和逻辑数据结构上的运算而不考虑计算机的具体存储结构和运算的具体实现算法。 

1.可以用(D,S,P)三元组表示,例如:

ADT Complex { 

数据对象: D={e1,e2 | e1,e2均为实数} 

数据关系: R={<e1,e2> | e1是复数的实数部分,e2 是复数的 虚数部分 }

基本操作: 运算功能描述,即函数接口。

 } ADT Complex

2.抽象数据类型有两个重要的特征:

1)数据抽象:将数据抽象出数据特征,功能和接口 。

2)数据封装:将外部特性和内部实现细节分离,对外部用户隐藏细节。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值