上一篇介绍了顺序表的有关定义及其及其简单的插入,删除,按值查找操作,这一篇将介绍顺序表的其他操作。
1.顺序表的初始化
静态存储顺序表初始化:
void Initlist(SqList &L){
for(int i = 0;i < L.MaxSize;i++){
L.data[i] = 0; //所有数据元素初值设为0
}
L.length = 0; //数据元素初始长度为0,覆盖脏数据
}
动态存储顺序表初始化:
void Initlist(SeqList &L){
//用malloc申请一片地址连续的存储空间
L.data = (ElemType*)malloc(sizeof(ElemType) * InitSize);
L.length = 0;
L.MaxSize = InitSize;
}
2.动态顺序表增加数组长度
bool IncreaseList(SeqList &L,int len){
ElemType *p = L.data;
L.data = (ElemType*)malloc(sizeof(ElemType) * (L.MaxSize + len));
for(int i = 0;i < L.length;i++){
L.data[i] = p[i];
}
L.MaxSize = L.MaxSize + len;
free(p);
}
3.顺序表的按位查找
ElemType GetElem(SeqList L,ElemType e){
return L.data[i-1];
}