1、基本概念和术语

数据:是对客观事物的符号表示。
数据元素:数据的基本单位,一个数据元素可由若干个数据项组成,数据项是数据的不可分割的最小单位
数据对象:性质相同的数据元素的集合是数据的一个子集
数据结构:相互之间存在一种或多种特定的关系的数据元素的集合

4种基本结构:

1.线性结构:结构中的数据元素之间存在一个对一个的关系
2.树形结构:结构中的数据元素之间存在一个对多个的关系
3.图状结构或网状结构:结构中的数据元素之间存在多个对多个的关系
4.集合:结构中的数据元素之间除了“同属于一个集合”的关系之外别无关系

数据结构的形式定义为:数据结构是一个二元组
Data_Structure=(D,S):D为数据元素的有限集,S是D上关系的有限集
逻辑结构:结构定义中的关系描述
存储结构/物理结构:数据结构在计算机中的表示,包括数据元素的表示和关系的表示
计算机中最小单位:位
数据元素:若干个位组合起来形成的一个串(元素/节点可以看成数据元素在计算机中的一个映射)
数据域:当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串为数据域
数据元素在计算机中的表示方法:顺序映像和非顺序映像
顺序映像:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系
非顺序映像:借助指示元素存储地址的指针来表示元素之间的逻辑关系
数据元素在计算机中的存储结构:顺序存储结构和链式存储结构
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。例如:整型变量,其值集为某个区间上的整数,定义在其上的操作为加减乘除和取模等算术运算
若按其值的不同特性,可以分为下列三种类型:
原子类型:属原子类型的变量的值是不可分割的。例如:C语言中的基本类型(整型、实型、字符型和枚举类型)、指针类型和空类型
结构类型:结构类型的值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的。
固定聚合类型:属于该类型的变量,其值由确定数目的成分按某种结构组成
可变聚合类型:构成可变聚合类型“值”的成分的数目不确定
和数据结构的形式定义相对应,抽象数据类型可用以下三元组表示:
(D,S,P)/D表示数据对象,S是D上的关系集,P是对D的基本操作集。定义抽象数据类型:
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
基本操作的定义格式:
基本操作名(参数表)
      初始条件:<初始条件描述>//执行操作之前数据结构和参数应该满足的条件,若不满足则操作失败返回出错信息
      操作结果:<操作结果描述>//操作正常完成之后数据结构的变化和应返回的结果
基本操作有两种参数:赋值参数只为操作提供输入值
                                 引用参数以&打头,除可提供输入值外,还将返回操作结果

例:
ADT Triplet{
数据对象:D={e1,e2,e3|e1,e2,e3∈ElemSet(定义了关系运算的某个集合)}
数据关系:R1={<e1,e2>,<e2,e3>}
基本操作:
IsAscending(T)
初始条件:三元组T已存在。
操作结果:如果T的3个元素按升序排列,则返回1,否则返回0.
}ADT Triplet
多边数据类型:其值的成分不确定的数据类型

2、抽象数据类型的表示与实现

抽象数据类型通过固有数据类型来表示和实现,即利用处理器中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作。
C语言的一些核心子集:
预定义常量和类型
数据结构的表示(存储结构)用类型定义(typedef)描述
自定义函数
赋值语句
选择语句
循环语句
结束语句
输入输出语句
注释
基本函数
逻辑运算约定

3、算法和算法分析

算法的性质:有穷性,确定性,可行性,输入,输出
算法设计的要求:正确性,可读性,健壮性,效率和低存储量需求
算法效率的度量:
事后统计的方法(使用计算机内部的计时功能)
事前分析估算:一个算法是由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间由这两者共同决定

数据结构的基本概念和抽象数据类型相关推荐

  1. python @修饰符_数据结构与算法之8——抽象数据类型与python类

    就算你是特别聪明,也要学习,从头学起!--(俄国)屠格涅夫 本篇文章要说的主要是数据结构与算法和python中关于类(Class)以及异常(Error)的一些基础,虽然很简单,但是必须非常重视.只有在 ...

  2. 数据结构13:无序表抽象数据类型(链表)(一)

    目录 一.什么是无序表 二.无序表的操作 三.采用链表实现无序表 四.链表实现 1.节点Node 2.无序表unorderedlist 一.什么是无序表 在前面基本数据结构的讨论中,采用python ...

  3. python数据结构——无序,有序列表抽象数据类型,链表

    无序列表支持的操作 List()add(item)remove(item)search(item)#返回布尔值index(item)#返回下标isEmpty()length()append(item) ...

  4. 数据结构、数据类型、抽象数据类型之间的区别

    三者的定义(蓝字可忽略): 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构.(数据元素是最基本的数据单位,最基本的数据元素是一个二进制位.) 逻辑结构指反映数据元素 ...

  5. 数据结构、数据类型、抽象数据类型之间的关系

    计算机跨考选手刚刚学到了数据结构的绪论,感觉这块比较难以理解,分享一下自己的观点吧,还请大家多多指教~ 严蔚敏教授编写的<数据结构>中对于以上三者的定义是: 1. 数据结构:是相互之间存在 ...

  6. 一、【绪论】数据结构的基本概念

    数据结构的基本概念 1 基本概念 1.1 数据 Data 在数据结构中,数据是指一切可以被输入到计算机中并被计算机程序识别和处理的符号的集合. 1.2 数据元素 Data Element 数据元素是数 ...

  7. 复数抽象数据类型C语言,采用C/C++语言如何实现复数抽象数据类型Complex

    记录一下! 采用C/C++语言如何实现复数抽象数据类型Complex #include typedef struct Complex { double e1; // 实部 double e2; // ...

  8. c语言写报告抽象数据类型,C语言抽象数据类型ADT

    根据编程的问题匹配合适的数据类型.数据项连接构成了链表,定义了一个结构代表单独的项.设计了一些方法把一系列结构构成一个链表.本质上,我们使用C语言的功能设计了一种符合程序要求的新的数据类型.但是上述的 ...

  9. 什么是抽象数据类型?

    什么是抽象数据类型? 前言 1.数据类型和数据构造 2.抽象数据类型的概念 3.抽象数据类型的描述 前言 抽象数据类型(Abstract Data Type,ADT)是计算机领域中被广泛接受的一种思想 ...

最新文章

  1. Ubuntu升级到18.04
  2. 行为类模式(八):状态(State)
  3. BZOJ 3668: [Noi2014]起床困难综合症( 贪心 )
  4. 算法提高课-搜索-Flood fill算法-AcWing 1097. 池塘计数:flood fill、bfs
  5. IPv6 RIPng (PT)
  6. 如何巧妙的使用ArrayList的Clone方法
  7. window.onload与$(document).ready()的区别
  8. Django-视图层
  9. pytesseract
  10. 算法与数据结构 第2章 排序基础 下 插入排序
  11. json html api文档,插件 jQuery.jsonview 中文 API 文档
  12. android网易云音乐api接口,网易云音乐API分析
  13. java实现将汉字转为拼音并包含音调
  14. 第13课:JSP动作 Indude动作和指令的区别(JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  15. c语言二进制强制转十六进制,C语言二进制转十六进制问题
  16. 如何用python进行回归分析_如何用python进行回归分析
  17. 友盟统计 H5 vue 隐藏友盟图标
  18. Adobe或QQ的oxc000007b错误解决方案.
  19. 如何用excel搭建数据模型,销售数据管理软件
  20. Visual Studio 2017,C++MFC免注册调用大漠插件图文教程,详细版

热门文章

  1. 【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)
  2. python startswitch_使用python esl 实现FreeSWITCH自动外呼
  3. linux 针对目录空间配额,linux磁盘配额quota
  4. python中selenium打开浏览器拿不到url_Selenium打开浏览器,但在Chrome和Firefox中都无法获取URL...
  5. python-week6
  6. python 安装echarts
  7. java 10大常见异常
  8. BZOJ4520 CQOI2016K远点对(KD-Tree+堆)
  9. Contest Hunter 0103最短Hamilton路径 【状压dp】 By cellur925
  10. oracle 之 基础操作