数据结构中线性表的顺序式表示动态分配存储结构

顺序线性表存储结构,很容易实现随机存取线性表第i个元素的操作,但实现删除或者插入操作时需要移动大量的数据元素。所以,顺序表适应于稳定的线性表,如职工工资表和学生学籍表。

 1  #define LIST_INIT_SIZE 10 //线性表存储空间的的初始分配量
 2  #define LIST_INCREMENT 2//线性表存储空间分配增量
 3    
 4  typedef int ElemType;//定义抽象数据类型ElemType为整形变量
 5  
 6  struct Sqlist
 7 {
 8        ElemType *elem;//存储空间基址
 9        int length;//线性表当前长度
10        int listsize; //当前分配存储容量       
11 };

 对此结构体的认识:第一,在外部用typedef 定义了ElemType的变量类型,这样增加了代码的灵活性。如果以后要修改存储变量的类型只需修改ElemType的类型就可以了;

第二,在这里使用的是ElemType的指针变量,相当于使用数组时的 ElemType elem[LIST_INIT_SIZE],不过这里使用指针更加灵活,这在顺序表的基本操作函数中可以看出来。