线性表

来源:互联网 发布:万网域名注册查询网 编辑:程序博客网 时间:2024/06/06 01:32

线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。Balabala.....其实最简单的也就不用说了,上述是取自百度百科对于线性表的定义。而在这里,就简单说明下线性表的定义:

        线性表是具有相同类型的n个数据元素的有限序列:  (a1, a2, a3, a4, ......, an)  ai是表项, n是表长度

        或许大家应该能联想到数组,其实是和线性表是一个道理,性质如下:

                   1. a0为表首元素,只有一个后继

                   2. an为表尾元素,只有一个前驱

                   3. 除a0an外的其他元素ai,既有前驱,又有后继

                   4. 线性表能够逐项访问和顺序存取

         这里主要介绍线性表的常用操作:

                   l 创建线性表                      

                   l 销毁线性表

                   l 清空线性表

                   l 表元素插入

                   l 表元素删除

                   l 获取表中某个位置的元素

                   l 获取表长度

 

            代码总分为三个文件:

                  SeqList.h : 放置功能函数的声明,以及表和表结点的声明

                  SeqList.h : 放置功能函数的定义,以及表和表结点的定义

                  Main.c : 主函数,使用功能函数完成各种需求,不过我一般是用作测试

         用一副图来描述下代码的总体结构:

         其实对于在SeqList.c 和SeqList.h文件中分别定义SeqList,我刚开始看的时候也不懂,在SeqList.c文件中每次使用函数参数中的list,需要强制类型转换为sList,后来才知道多了一次转换是为了更高的安全性和可靠性。

         这里着重说下插入操作和删除操作:

                           插入操作

                                   如图

                      插入元素方法:

                                首先判断线性表﹑插入位置是否合法,表是否已满

                                把最后一个元素到插入位置的元素向后移一个位置

                                把新元素插入

                               最后把线性表长度加1

                删除操作

                        如图

                               删除元素方法:

                              首先判断线性表﹑删除位置是否合法

                              把要删除的元素取出

                              然后从删除元素后一个位置的元素到最后元素依次往前移一个位置

                              最后把线性表长度减1


0 0
原创粉丝点击