1
C/C ++程序设计
1.2.7.1 7.1 顺序表

7.1 顺序表

顺序表是把线性表中的所有元素按照其逻辑顺序,依次存储到指定存储位置开始的一块连续的存储区域内。顺序表的特点如下:

(1)在顺序表中,各个元素的逻辑顺序跟物理顺序一致,第i项就存在第i个位置。

(2)对顺序表中所有元素,既可以采用顺序访问,也可以采用随机访问。

在C语言中,数组就是顺序表的具体应用。

7.1.1 定义顺序表

img273

图7-1 顺序表

定义一个顺序表有两个环节:一个是声明一个大数组,需要考虑顺序表所容纳数据的上限值;另一个是声明一个标识符,表示顺序表中实际元素的个数,如图7-1所示。建立结构体,定义顺序表代码如下:

img274

7.1.2 创建顺序表

创建一个顺序表并实现顺序表的输出。函数CreateList的作用是创建线性顺序表,其中声明了数组并初始化顺序表元素个数为0;函数DisplayList的作用是打印线性顺序表,使用循环遍历顺序表并输出顺序表元素值。

img275

7.1.3 顺序表结点的遍历

函数FindList的作用是遍历顺序表查找结点值为n的顺序表元素,如果找到返回所在下标,如果不存在返回-1。

img276

img277

函数FindList的参数list指向顺序表头结点,参数n表示待查找的数据值。

7.1.4 顺序表结点的追加

函数AppendNode的作用是当顺序表元素个数小于上限值时,在顺序表最后添加新元素。

img278

函数AppendNode的参数list指向顺序表头结点,参数n表示待追加的结点值。

7.1.5 顺序表结点的插入

函数InsertNode的作用是当顺序表元素个数小于上限值,且待插入元素的位置有效时,把原位置以后的结点后移一位,新结点插入到当前位置。

img279

函数InsertNode的参数list指向顺序表头结点,参数n表示待插入的结点值,参数pos表示待插入的结点位置,即待插入数组元素的下标。

7.1.6 顺序表结点的删除

函数DeleteNode的作用是当顺序表中有结点,且待删除元素的位置有效时,把原位置以后的结点前移一位,删除当前位置的结点。

img280

函数DeleteNode的参数list指向顺序表头结点,参数n表示待删除的结点的位置,即待删除数组元素的下标。