线性表的特点:以物理位置相邻表示逻辑关系,任意一个元素均可以随机存取(优点)
LOC(ai).....LOC(ai)+(maxlen-1)*l
顺序表与数组一致
1.地址连续
2.依次存放
3.随机存取
4.类型相同
不同点:线性表可变(删除)
数组长度不可动态定义
如:数组的定义:类型说明符 数组名[常量表达式];常量表达式可以包含常量和符号常量,不能包含变量。
用一变量表示顺序表的长度属性
#include LIST_INIT_SIZE 100//线性表存储空间的初始分配量
typedef struct{
ElemType elem[LIST_INIT_SIZE];
int length;//当前长度
}SqList;
关于多项式的顺序存储结构类型定义
pn(x)=p1*x^e1+p2*x^e2+p3*x^e3........+pm*x^em;
线性表P=((p1,e1),(p2,e2),.....(pm,em));
#include MAXSIZE 1000//多项式可能达到的最大长度
typedef struct{//多项式非0项的定义
float p;//系数
int e;//系数
}Polynomial;
typedef struct{
Polynominal *elem;//存储空间的基地址
int length;//多项式中的当前项的个数
}SqList;//多项式的顺序存储结构类型为SqList
图书表的顺序存储结构类型定义
#include MAXSIZE 10000//图书表达到的最大长度
typedef struct{//图书馆信息定义
char no[20];//图书ISBN
char name[50];//图书名字
float price;//图书价格
}Book;
typedef struct{
Book *elem;//存储空间的基地址
int length;//图书表中当前图书个数
}SqList;//图书表的顺序存储结构类型为SqList