C语言中的数据结构的基本概念

1.基本概念和术语

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。

数据(data):是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型和实型等数据类型,还包括字符及声音、图像、视频等非数值类型。

数据元素(data element):是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录、结点和顶点。

数据项:一个数据元素可以由若干个数据项组成。

数据项是数据不可分割的最小单位

数据对象(data object):是性质相同的数据元素的集合,是数据的子集。

数据结构(data stcucture):是相互之间存在一种或多种特定关系的数据元素之间的相互关系。

不同数据元素之间不是独立的,而是存在特定的关系,称之为结构

2.逻辑结构和物理结构

划分一:

2.1 逻辑结构的种类:线性结构和非线性结构

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

2)非线性结构:一个结点可能有多个直接前趋和直接后继。例如:树、图。

划分二:

1)集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其他关系。

2)线性结构:结构中的数据元素之间存在着一对一的层次关系。

3)树形结构:结构中的数据元素之间存在着一对多的层次关系。

4)图形结构或网状结构:结构中的数据元素之间存在着多对多的任意关系。

2.2 物理结构:是指数据的逻辑结构在计算机中存储形式。

物理结构包括有顺序存储结构、链式存储结构、索引存储结构和散列存储结构。

1)顺序存储结构:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。

2)链式存储结构:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。

3)索引存储结构:相当于目录。

4)散列存储结构:根据结点的关键字直接计算出该结点的存储地址。

3.数据类型和抽象数据类型

3.1 数据类型(data type):是指一组性质相同的值的集合及定义在此集合上的一组操作的总称。

数据类型是按照值的不同进行划分的。在高级语言中,每个变量、常量和表达式都有各自的取值范围。类型就用来说明变量或表达式的取值范围和所能进行的操作。

例如:C语言中:int ,char ,float ,double等基本类型;数组、结构、共用体、枚举等构造数据类型;还有指针、空(void)类型;用户也可用typedef自己定义数据类型。

数据类型的作用:约束变量或常量的取值范围和操作

3.2 抽象数据类型:(Abstract Data Type ,ADT):一个数学模型及定义在该模型上的一组操作。

抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。

抽象数据类型的形式定义:

抽象数据类型可用(D,S,P)三元组表示。其中:D是数据对象;S是D上的关系集;P是对D的基本操作集。

抽象数据类型的标准格式:

ADT        抽象数据类型名

Data

数据元素之间逻辑关系的定义

Operation

操作1

        初始条件

        操作结果描述

操作2

...........

操作n

...........

endADT

例如;ADT Circle {

数据对象:D={r,x,y|r,x,y均为实数 }

数据关系:R={<r,x,y>| r是半径,<x,y>是圆心坐标 }

基本操作:

Circle(&C ,r ,x ,y)

        操作结果:构造一个圆。

double Area(C)

        初始条件:圆已存在。

        操作结果:计算面积。

double Circumference (C)

        初始条件:圆已存在。

        操作结果:计算周长。

....................

} ADT Cirle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值