数据结构概述

基本概念

1.数据结构基本概念

  • 数据
  1. 是能输入计算机且能被计算机处理的各种符号集合;
  2. 信息的载体;
  3. 是对客观事物符号化的表示;
  4. 能够被计算机识别、存储和加工;

分类:

  1. 数值型的数据:整数、实数等;
  2. 非数值型的数据:文字、图形、声音等;
  • 数据元素(Data Element)

​ 是数据的基本单位,通常作为一个整体进行考虑和处理;

  • 数据项(Data Item)

    一个数据元素可由若干个数据项组成,数据项是数据元素的不可分割的最小单位;

  • 数据对象(Data Object)

​ 是具有相同性质的数据元素的集合,是数据的一个子集;

  • 数据结构(Data Structure)

​ 是相互之间存在的一种或多种特定关系的数据元素的集合;

![外链图片在这里插入图片描述

2.数据结构三要素

  • 逻辑结构:

​ 从逻辑关系上描述数据,与数据存储无关,它是从具体问题抽象出来的数学模型;

  • 物理结构(存储结构):

​ 数据元素及其关系在计算机中内存中的存储形式(又称映像);

  • 数据的运算:

​ 数据上的某些操作,包括:增删改查排序等;

  • 逻辑结构的种类:

划分方法一:

​ 线性结构:有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继;例如:线性表、栈、队列、串

​ 非线性结构:一个结点可能有多个直接前驱和直接后继;例如:树、图

划分方法二:

​ 集合:数据元素间除”同属于一个集合“外,无其他关系;

!在这里插入图片描述

​ 线性结构:一个对一个线性关系,如线性表、栈、队列;

在这里插入图片描述

​ 树形结构:一个对多个层次关系;

在这里插入图片描述

​ 图形结构:多个对多个任意关系;

在这里插入图片描述

  • 物理结构(存储结构)的种类:

​ 顺序存储结构

​ 链式存储结构

​ 索引存储结构

​ 散列存储结构

  • 数据的运算(增删改查)

    在这里插入图片描述

3.抽象数据类型定义

  • **数据类型:**是一个值的集合和定义在此值集合上的一组操作的总称;

​ 按“值”的不同特性数据类型可分为(高级程序语言):

​ (1) 原子类型:其值不可再分的数据类型

​ C语言:char int float double

​ (2) 结构类型:其值可再分解为若干成份的数据类型

struct Customer{
    int num;
    int people;
    ...
}
  • **ADT(Abstract Data Type):**抽象数据类型
  • **定义:**是指一个数学模型及定义在该模型上的一组操作;
  • 包括三个方面:
    1. 由用户定义:从具体问题抽象出数学模型(逻辑结构);
    2. 数据的运算:定义在此数学模型上的一组抽象操作;
    3. 不考虑在计算机内的具体存储结构与运算的具体实现;

在这里插入图片描述

  • **抽象数据类型 = 逻辑结构 + 抽象运算 **

抽象数据类型实质上是一个对求解问题的形式化描述(与计算机无关),程序员可以在理解基础上实现;

数据结构由一个四元组来表示:

Data_Structure =(D,R,L,O), 数据元素、数据元素之间的逻辑关系、逻辑关系在计算机 中的存储表示、以及所规定的操作这四部分;

抽象数据类型ADT一般包含数据元素、数据元素之间关系及操作三要素 (D, R, O),其中:

D是数据元素集;

R是D上的关系集合;

O是对D的基本操作集;

在这里插入图片描述

在这里插入图片描述
抽象数据类型定义

​ Circle:圆的定义

ADT 抽象数据类型名{ 							ADT Circle{ 
	数据对象的定义									D={r,x,y| r,x,y 均为实数}
	数据元素之间的逻辑关系							  R={r,x,y| r是半径,<x,y> 为圆心坐标}
Operation         								 Circle(&C, r,x,y)
	操作 1 :											操作结果:构造一个圆
		初始条件									double Area(C)
		操作结果描述										初始条件:圆已存在
	操作 2 :											  操作结果:计算圆的面积
		… … 										… …
	操作 n: 									} ADT Circle
} ADT 抽象数据类型名
  • 数据结构求解问题过程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值