重新学习数据结构,以《大话数据结构》为参考书,如有问题,请指正.下面是我个人的笔记:
1.1基本概念的介绍
程序设计=数据结构算法
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机的处理的符号集合。
数据的特点:
- 可以输入到计算机中
- 能被计算机程序处理
数据元素:是组成数据的,具有一定意义的基本单位。在计算机中通常作为整体处理,也被称为元素。
数据项:一个数据元素可以由若干个数据项组成,是数据不可分割的最小单位。
数据对象:是性质相同的数据元素的集合,是数据的子集,在不混淆的情况下可简称为数据。
不同数据之间不是独立的,而是存在特定的关系。我们将这些关系称为结构。
数据结构:是相互之间存在的一种或多种特定关系的数据元素的集合。
1.5逻辑结构与物理结构
1.5.1逻辑结构:是指数据对象中数据元素之间的相互关系。
集合结构:集合结构的数据元素除了同属于一个集合外,之间没有任何其他关系。
线性结构:数据元素之间是一对一的关系
树形结构:数据元素之间存在一种一对多的层次关系
图形结构:多对多的关系
ps:在用示意图表示数据的逻辑结构时,要注意
- 将每一个数据看做一个结点,用圆圈表示
- 元素之间的逻辑关系用结点之间的连线表示,如果关系是有方向的,那么用带箭头的连线表示
1.5.2物理结构(存储结构):是指数据的逻辑结构在计算机中存储形式
顺序存储结构:是把数据元素存放在地址联系的存储单元里,其数据间的逻辑关系和物理关系是一致的
例如:建立一个整形数据的数组,计算机先在内存中找了片地方,按照一个整形所占位置的大小乘9
链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的.
存储关系并不能反应其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置.
1.6抽象数据类型
1.6.1数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称
例如在C语言中,数据类型可以分为两类
- 原子类型:不可再分解的基本类型,包括整型,实型,字符型
- 结构类型:由若干个类型组合而成,是可以再分解的,例如整形数组是由若干整型数据组成的.
抽象是指抽取出事物具有的普遍性本质
1.6.2抽象数据类型(ADT):是指一个数字模型及定义在该模型上的一组操作.
"抽象"的意义在于数据类型的数字抽象特性.
抽象数据类型体现了程序设计中问题分解,抽象和信息隐藏的特征.
1.7总结
留日后更新