顺序表.cpp
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct {
ElemType *elem; //基地址指针
int length; //顺序表长度
}SqList;
void InitList(SqList &L){//顺序表的初始化
L.elem = new ElemType[MAXSIZE];
if(!L.elem)
exit(-1);
L.length = 0;
}
void GetElem(SqList L, int i, ElemType &e){//顺序表的取值
if(i<1||i>L.length)
exit(-1);
e = L.elem[i-1];
}
int LocateElem(SqList L, ElemType e){//顺序表的查找
int i;
for(i=0; i<L.length; i++)
if(L.elem[i] == e)
return i+1;
return 0;
}
void ListInsert(SqList &L, int i, ElemType e){ //顺序表的插入
int j;
if((i<1)||(i>L.length+1))
exit(-1);
if(L.length == MAXSIZE)
exit(-1);
for(j = L.length-1; j >= i-1; j--)
L.elem[j+1] = L.elem[j];
L.elem[i-1] = e;
L.length++;
}
void ListScanf(SqList &L, int k){//顺序表的初始化输入
int i;
for(i=0; i<=k-1; i++){
scanf("%d", &L.elem[i]);
L.length++;
}
}
void ListDelete(SqList &L, int i){//顺序表的删除
int j;
if((i<1)||(i>L.length))
exit(-1);
for(j=i; j<=L.length-1; j++)
L.elem[j-1] = L.elem[j];
L.length--;
}
void ListPrint(SqList &L){
int i;
for(i=0; i<=L.length-1; i++){
printf("%d ", L.elem[i]);
}
}
主函数
int main(){
int n;
SqList L;
InitList(L);
printf("请输入初始化顺序表长度:\n");
scanf("%d", &n);
printf("请初始化顺序表:\n");
ListScanf(L, n);
printf("打印顺序表:\n");
ListPrint(L);
printf("\n插入值:\n");
ListInsert(L, 3, 8);
printf("打印顺序表:\n");
ListPrint(L);
printf("\n删除值:\n");
ListDelete(L, 3);
printf("打印顺序表:\n");
ListPrint(L);
}
控制台实现