之前对数据结构的了解真的很浅显,虽然对我这种小白来说也用不到什么高级的算法,采用什么样的数据结构。但是,在立志前往IT前沿的道路上,我的的确确该做些改变了!
一.数据
Q1:数据是什么?
A1:所有能输入到计算机中且能被计算机程序处理的符号的总称。
PS:数据对象是性质相同的数据元素的集合,是数据的子集。
数据元素又可以由若干个数据项组成。
eg:图书馆的所有书籍就是一个数据对象,而每一本书都是一个数据元素,每一个数据元素都有好多数据项组成(名称、类别、出版社、作者等等)
Q2:那么什么是数据结构呢?
A2:简单来说就是有特定关系的数据元素的集合。
PS:
4类基本结构
1.线性结构;
2.树形结构;
3.图形结构;
4.集合;
数据结构是一个二元组 Data Structure = (D,S)
– D是数据元素的有限集
– S是D上关系的有限集
数据元素之间的关系有两种表示方法:
1.顺序存储;
2.链式存储;
二.数据类型
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。
三.抽象数据类型
一个数学模型以及定义在该模型上的一组操作
三元组表示:(D,S,P)
–D:数据对象
–S:D上的关系集
–P:对D的基本操作集
1.3 抽象数据类型的表示和实现
详情见《数据结构》P9-P13
伪代码—–以 类C 为例;
1.4 算法
Character :
1.无死循环
2.无二义性
3.可行性
4.输入
5.输出
Brilliant Algorithm:
- 正确性 –测试人员要比开发者多
- 可读性 –要求一目了然
- 健壮性 –可以当作可移植性,不同环境下都可正确运行
- 效率与第存储量要求 –属于数据结构的范畴
即高速低存储
算法的描述工具
- 自然语言(太粗)