顺序表
顺序表的初始化:静态分配
/*指定 int 的别名 */
typedef int ElemType;
/*数组的最大容量*/
#define MaxSize 50
typedef struct Sqlist{
ElemType data[MaxSize];
int length;
} Sqlist;
顺序表的初始化:动态分配
/*指定 int 的别名 */
typedef int ElemType;
/*数组的最大容量*/
#define InitSize 100
int main()
{
typedef struct Sqlist{
/*定义存放动态数组的指针*/
ElemType *data;
int length,MaxSize;
} Sqlist;
Sqlist l;
/*ElemType * :强制类型转换*/
/* malloc:申请内存*/
/* sizeof : 获取数据类型的字节数大小*/
l.data=(ElemType *) malloc(InitSize*sizeof (ElemType));
return 0;
}
顺序表的插入:位序i
从后往前面插:
/**
*顺序表的插入操作
* @param i 位序
* @param e
* @return
*/
bool ListInsert(Sqlist &L, int i , int e){
if(i<1 || i>L.length){
return false;
}
if(L.length==L.MaxSize){
return false;
}
for(int j=L.length;j>=i;j--){
L.data[j-1]=L.data[j];
};
L.data[i-1]=e;
L.length++;
return true;
}
顺序表的删除:位序i
找到定位;从前往后
/**
*顺序表的删除操作
* @param i 位序
* @return
*/
bool ListDelete(Sqlist &L, int i ){
if(i<1 || i>L.length){
return false;
}
for(int j=i;j<L.length;j--){
L.data[j-1]=L.data[j];
};
L.length--;
return true;
}