数据的操作
数据的操作是指作用在某种数据结构上的操作,如插入、删除、修改等。数据结构不同,插入、删除以及修改等操作对象也不同,操作所需的条件以及复杂程度也不同。如在一个线性结构中插入一条记录,只需要知道插入到第几个位置就可以将数据准确地插入到某个位置。线性结构的插入过程如图1-6所示。
从图1-6可以看出,对线性结构的插入操作只需要指出要插入的位置即可。而对于非线性结构的插入操作就有所不同,如同一个树形结构中插入数据就不可能仅通过给出某个位置唯一确定要插入的位置。非线性结构的插入过程如图1-7所示。
如图1-7所示,由于非线性结构是一对多的关系,所以线性表的插入方法显然不适用于这种结构。上面两个示例仅仅是为了说明数据的操作时建立在具体的数据结构基础之上的。所以,我们这里不谈数据结构的具体操作,仅仅关注一下这些操作对数据的影响或者作用。常见的操作如下。
1.初始化
初始化主要是对某种数据结构赋初值或者为其分配相应的存储空间。有时候把赋初值操作和结构生成的操作分开。
2.查找
查找是根据查找条件(这里的条件可以是指定的位置,也可以是其他的一些条件),找出符合条件的零个、一个或多个数据。例如,查找学号为3的学生,可能会查到零个或一个;也可以查找性别为女的学生,这样查出来的可以是多个学生。
3.插入
插入就是将新数据插入到指定的地方(这个地方应该是可以从所给条件中唯一被确定的)。插入操作结果会使数据个数增加,也可能会使其他相关元素的位置发生变动。
4.修改
修改就是将满足给定条件的数据修改为给定的值(这里的条件与查找中的条件意思一致)。修改的数据个数可以是大于等于零的,只要符合条件的即可。
5.删除
删除就是将满足条件的数据删除(这里的条件与查找中的条件意思一致)。删除可能会使数据减少(因为有可能没有满足删除条件的数据),也可能会引起相关数据位置的变化。
6.遍历
遍历就是将数据按照一定的顺序全部浏览一遍,这一操作不会引起数据的任何变化。遍历操作可以实现将得到非线性结构的某种线性序列。例如,通过树的先根遍历,中根遍历及后根遍历可得到树的所有顶点的某一种序列。
7.销毁
数据结构的销毁就是释放所占的存储空间或其他相关的操作。