在学习数据结构之前,一定要搞清楚一些基本概念才可以,这里就简单介绍一下数据结构的基本概念和术语。
- 数据(data):是指所有能输入到计算机中并被计算机程序处理的符号的总称。
- 数据元素(data element):是数据的基本单位
- 数据对象(data object):是性质相同的数据元素的集合,是数据的一个子集
- 数据结构(data structure):是相互之间存在一种或多种特定关系的数据元素的集合
现在我们知道了数据结构的定义,那么到底有哪几种数据结构呢,其实粗粗的分下来,只有4类最基本的结构,分别是:
- 集合:结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系。这就像你一个人在火车站等火车,虽然很多人都在候车厅,但是你们之间并没有其他关系,这就是一个集合啦。
- 线性结构:结构中的数据元素之间存在一个对一个的关系。这个就像在火车站排队买票,你在队伍中只关心站在你前面那个人就可以了,而你后面的人也是只要跟着你就可以,这就是一个队列。
- 树形结构:结构中的数据元素之间存在一个对多个的关系。这个想象一下树的主干和分支就很清楚了。
- 图状结构:结构中的数据元素之间存在多个对多个的关系。
我相信现在我们对数据结构的概念和分类已经很清楚了,那么接下来就该讲讲算法了
- 算法的概念:算法是对特定问题求解步骤的一种描述,它是指令的有限序列。
- 算法的5大特性
- 有穷性:一个算法必须在有穷步之后结束,且每一步都在有穷时间内完成
- 确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。
- 可行性:一个算法是能行的。
- 输入:一个算法必须有另个或多个的输入
- 输出:一个算法有一个或多个的输出
- 算法的设计要求
- 正确性:你设计的算法肯定要能解决对应的问题啊,不然怎么叫算法
- 可读性:你设计的算法应该能让别人能看懂,不然以后怎么维护呢?
- 健壮性:设计的算法应该足够健壮以适应各种各样的特殊情况
- 效率与地存储量需求:这也就是为什么优化算法很重要的原因啦
这一章是很枯燥的,看着这么多文字我也烦,那么赶快进入下一章吧。线性表的代码实现。