数据结构概论

数据结构和算法是程序的核心和灵魂!
一、数据结构基本概念和术语
1、数据结构的三要素:逻辑结构、存储结构(物理结构)、数据运算。
2、数据:数据是信息表示的载体和变现形式,它是由描述客观事物的属性的数字、字符和所有能够被计算机程序识别和处理的符号总称。
3、数据元素:数据元素是数据的基本单位。它又由不可分割的最小单位数据项组成;例如学生记录(同数据库中的记录)是由学号、姓名、性别、成绩等数据项(类似于数据库中的字段,字段与记录交叉处叫做值)组成。
4、数据对象:由相同性质的数据元素组成的集合。
5、数据类型:是一个值的集合和定义在此集合上的一组操作的总称。(原子类型:其值可再分;结构类型:其值可再分,抽象数据类型)
6、抽象数据类型(abstract data type):是指一个数学模型和定义在该模型上的一组操作。它仅取决于其逻辑特征,而与计算机内部如何表示和实现无关。比如刚才说得整型,各个计算机,不管大型机、小型机、PC、平板电脑甚至智能手机,都有“整型”类型,也需要整形运算,那么整型其实就是一个抽象数据类型。
根据定义抽象数据类型的定义,它还包括该模型上的一组操作。就像一个4399小游戏,里面的游戏主角,我们给他定义了基本操作,前进、后退、跳、打子弹等。这就是一个抽象数据类型。
7、数据结构:结构是指在数据元素之间的存在的相互关系。
所以,数据结构是指相互之间存在一种或多种的特定关系的数据元素之间的集合。它包括:逻辑结构、存储结构(物理结构)、数据运算。

二、数据的逻辑结构:
数据的逻辑结构分为:线性结构和非线性结构。
线性结构主要有:线性表、堆栈(一对一);
非线性结构包括:集合、树(一对多)、图(多对多);


三:数据的存储结构
存储结构是指数据结构在计算机中的表示(又称为映射)也叫物理结构。它包括数据元素的表示和关系的表示。
数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。
数据的存储结构包括:顺序存储、链式存储、索引存储和散列存储(hash存储)
3.1、顺序存储:把逻辑上相邻的数据按照物理位置上也相邻的形式存储。元素的关系由存储单元的相邻关系来体现。其优点是:可以实现随机存储,每个元素占用最小的空间;缺点是:只能使用相邻的一整块单元存储,因此可能会产生较多的外部碎片。

3.2、链式存储:借助指示元素存储地址的指针表示元素之间的关系。其优点是不会产生碎片现象,充分利用好存储单元。缺点是:每个元素因为存储指针而占用额外的存储空间,并且只能实现顺序的存取。

3.3、索引存储:在储存元素的同时还建立附加的索引表。索引表中的每一项成为索引项。索引项的格式为(关键字,存储地址);
其优点是大大加快了元素数据的检索速度。缺点是:增加了附加的索引表,会占用较多的存储空间,另外就是在增加或修改数据时候,需要修改索引表。浪费了更多时间。

3.4、散列存储:根据元素的关键字,直接算出其存储地址。又称为hash存储。其优点是检索、增加、修改结点时候操作都很快,缺点是:如果散列函数不好会造成元素存储单元的冲突。

四、数据的运算
数据的运算包括数据运算的定义和实现。
运算的定义是针对逻辑结构的,指出运算的功能
运算的实现是针对存储结构的,是指出运算的集体操作步骤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值