内容源于《大话数据结构溢彩版》共九篇;主要是做笔记,;以下第一篇。
If you give a program, you will frustrate them for a day, if you teach them how to program,you will frustrate them for a lifetime.(你交给某人一个程序,你将折磨他一整天,如果你教某人如何编写程序,你将折磨一辈子)。
@[toc]
1.数据结构概论(Abstract Data Type)
什么是数据结构
用计算机去解决一个问题时,大概需要3个步骤:
- 首先,从具体问题中抽象出一个数据模型
- 其次,设计一个解决此设计模型的算法
- 最后,编写出程序
那么数据结构在学什么?
- 如何用程序代码把现实世界的问题信息化
- 如何用计算机高效地处理这些信息从而创造价值
总而言之:《数据结构》是介于数学、计算机硬件和计算机软件三者之间的一门核心课程
1-1.抽象数据类型:
一个数学模型及定义在该模型上的一组操作;抽象数据类型体现了程序设计中问题分解,抽象和信息隐藏的特性。
抽象:抽象是指取出事物具有的普遍性的本质;只告诉你“是什么”,没说“怎么实现”。
1-2.基本概念和术语
数据
数据,是描述客观事务的符号,是计算机中可以操作的对象,是能被计算机识别到并输入给计算机处理的符号集合。
数据元素
数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。
在人类中,人就是数据元素;畜禽类?牛,马,羊,狗,猫就是畜禽类的数据元素。
数据项
数据项:一个数据元素可以由若干个数据项组成。
比如人这样的数据元素,可以由眼睛,耳朵,嘴巴,手脚等这些数据项,也可以有姓名,年龄,联系号码,邮政编码等数据项
数据项是不可分割的最小单位。
数据对象
数据对象:是性质相同的数据元素的集合,是数据的子集
什么是性质相同呢?还是刚才的例子,人都有姓名,生日,性别等相同的数据项。
数据结构
不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系称之为结构。
1-3.数据结构概述
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合
定义:我们如何把现实中大量而复杂的问题以==特定的====数据类型==和==特定的存储结构==保存到主存储(内存)中,以及在次基础上为实现某个功能(比如查找某个元素,删除某个元素,堆所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法
数据结构 = 个体 + 个体的关系
算法 = 对存储数据的操作
1-4.逻辑结构与物理结构
1-4.1逻辑结构
逻辑结构:是指数据对象中数据数据元素之间的相互关系**
- 集合结构:集合结构中的元素除了同属于一个集合外,他们之间没有其它关系。
- 线性结构:线性结构中的数据元素之间是一对一的关系
- 树形结构:树形结构中的数据元素是一种一对多的关系
- 图形结构:图形结构的元素是多对多的关系
物理结构
物理结构:是指数据的逻辑结构在计算机中的存储形式数据元素的储存结构分为两种:
- 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理管理是一致的。
- 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
等待更新,未完待续.....