数据结构(C语言)超详细知识点笔记1---数据结构的基本概念

一 数据结构的基本概念

在这里插入图片描述

1. 数据(Data)

  • 数据是描述客观事物属性的数值、字符以及能输入机器且能被处理的各种符号集合
  • 数据是信息的载体
  • 是对客观事物符号化的表示
  • 能够被计算机识别、存储和加工

分类:

  • 二数值型的数据:整数、浮点数
  • 非数值型的数据:文字、图像、图形、声音

2.数据元素(Data Element)

  • 数据元素是组成数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理

  • 数据元素有时候也可以简称为元素,有的时候也被称为记录,节点或顶点。

3.数据项(Data Item)

数据项是构成数据元素不可分割的最小单位

数据、数据元素、数据项三者之间的关系:数据>数据元素>数据项

4.数据对象(Data Object)

数据对象是性质相同的数据元素的集合,是数据的子集

数据元素与数据对象的关系:

  • 数据元素是组成数据的基本单位,即数据的个体

  • 数据对象是性质相同的数据元素的集合,即数据的子集

在这里插入图片描述

5.数据结构(Data Structure)

  • 数据结构是指相互之间存在一种或多种特定关系的数据元素集合
  • 数据元素不是孤立存在的,他们之间存在着某种关系,数据元素相互之间的关系称为结构
  • 数据结构是带结构的数据元素的集合
  • 数据结构要研究的是数据元素及其之间的关系

6.数据类型(Data Type)

(1)定义

数据类型是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称

数据类型 = 值的集合 + 值集合上的一组操作

(2)规定

1.在使用高级程序设计语言编程程序时,必须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型

例如:C语言中:

  • 基本数据类型:int、char、float、double等
  • 构造数据类型:数组、结构体、共用体、枚举等
  • 指针、空(void)类型
  • typedef自定义数据类型

2.高级编程语言中的数据类型明显地或者隐含地规定了在程序执行期间变量和表达的所有可能的取值范围,以及
在这些数值范围上所允许进行的操作。

例如:C语言中

定义变量i为int类型,就规定了i是[-65536,65535]范围内的整数,可进行+、一、*、/、%等操作

(3)作用

  • 约束变量或常量的取值范围

  • 约束变量或常量的操作

7.抽象数据类型(Abstract Data Type/ADT)

(1)定义

  • 抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作
  • 抽象数据类型由用户定义,从问题抽象出数据模型(逻辑结构
  • 抽象数据类型还包括定义在数据模型上的一组抽象运算(相关操作
  • 抽象数据类型不考虑计算机内的具体存储结构与运算的具体实现算法
  • 抽象数据类型可以通过固有的数据类型(如整型、实型、字符型)来表示和实现
    (即利用处理器中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作)

(2)形式定义

抽象数据类型可用(D,S,P)三元组表示

  • D是数据对象
  • S是D上的关系集
  • P是对D的基本操作集合

(3)基本操作的定义格式

  • 基本操作名(参数表)
  • 初始条件(初始条件描述)
  • 操作结果(操作结果描述)

说明:
参数表:

  • 赋值参数只能用来给操作提供输入值。
  • 引用参数 (以 “&” 开头) 不仅可以给操作提供输入值 ,还能在操作完成后返回操作的结果

初始条件:

  • 描述操作执行之前数据结构参数应满足的条件
  • 若不满足,则操作失败,返回响应的出错信息。
  • 若初始条件为空,则省略

操作结构:

  • 用于说明操作正常完成之后的数据结构的变化状况应返回的结果

(4)定义格式

我们使用类C语言(介于伪代码和C语言之间)作为描述工具

大致框架:

ADT 抽象数据类型名{
	数据对象:<数据对象的定义>
	数据关系:<数据关系的定义>
	基本操作:<基本操作的定义>
}ADT 抽象数据类型名

具体框架:

ADT抽象数据类型名{
	Data
		数据对象的定义
		数据元素之间的逻辑关系的定义
	Operation
		操作1
			初始条件
			操作结果描述
		操作2
			初始条件
			操作结果描述
			
			...
		
		操作n
			初始条件
			操作结果描述
			
}ADT 抽象数据类型名

实例:

ADT Circle{
	//数据对象
	D={r, x. ylr.xy均为实数} 
	//数据关系
	R={<r,x,y>|r是半径,<x,y>是圆心坐标} 
	
	//基本操作
	Circle(&C, r, x, y)
		//操作结果:构造一个圆
	double Area(C)
		//初始条件:圆已存在
		//操作结果:计算面积
	double Circumference(C)
		//初始条件:圆已存在
		//操作结果:计算周长
}ADT Circle
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值