一、初识数据结构
数据机构是一门研究非数值计算的程序设计问题中计算机的操作对象已经它们之间的关系和操作等的学科。
描述非数值计算问题的数学模型不在是数学方程,而是诸如表、树和图之类的数据结构。例如:表:图书管理系统,一本书可有书名、作者名、分类、出版社和出版时间,这些信息就构成了表;树:井字棋(3*3的棋盘,画圈和画叉),对于一个棋局,假设还有四个空位置没有下棋子,那下一个棋局会有四种可能,这四种可能性,每种可能性又都有三种可能性,直到有获胜的一方,游戏结束,这就是一棵“树”;图:多叉路口交通灯的管理问题。
二、基本概念
1. 数据机构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合;
2. 集合:结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系;
3. 线性结构:结构中的数据元素之间存在一个对一个的关系;
4. 树形结构:结构中的数据元素之间存在一个对多个的关系;
5. 图状结构:结构中的数据元素之间存在多个对多个的关系。
三、算法
3.1 算法的概念
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
3.2 算法的重要特征
1. 有穷性:一个算法必须重视在执行有穷步之后结束,且每一步都是在有穷的时间内完成。
2. 确定性:算法中每一条指令必须有明确的含义,读者不能产生二义性。并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的数据只能得出相同的输出。
3. 可行性:一个算法是能行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
4. 输入:一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。
5. 输出:一个算法有一个或多个的输出,这些输出是通输入有这某些特定关系的量。
3.3 算法设计的要求
1. 正确性:算法应当满足具体问题的需求。
2. 可读性:算法主要是为了人的月的和交流,其次才是机器的执行。
3. 健壮性: 当输入数据非法时,算法也能适当的做出反应或进行处理,而不会产生莫名其妙的输出结果。
4. 效率与低存储量需求:通俗的说,效率指的是算法执行的时间;存储量指的是算法执行过程中需要的最大的存储空间。常用的衡量效率和低存储量的方法分别为时间复杂度和空间复杂度。