此处有两种代码段,一种是直接删除元素的,另一种把删除的元素打印出来,并删掉该元素
代码中基本上每句都有注释
直接删除元素
#include#include #define Maxsize 10 //定义顺序表 typedef struct{ int * elem; //定义顺序表存储空间基址 int length; //定义顺序表的长度 }SqList; SqList InitList(SqList &L){ //给顺序表分配内存 L.elem = (int *)malloc(Maxsize * sizeof(int)); //初始化顺序表长度 L.length = 0; return L; } //声明两个操作 SqList ListDelete(SqList &L,int i); void DisplayList(SqList L); int main(){ //定义顺序表 SqList L; //初始化顺序表 L = InitList(L); int i,j; //给顺序表写入数据 for(i=0;i L.length){ return L; } int j; //把要删除位置元素之后依次往前移,把要删除位置的元素覆盖掉 for(j=i;j<=L.length-1;j++){ //让后一个元素往前移动 L.elem[j-1] = L.elem[j]; } //长度减一 L.length--; return L; } void DisplayList(SqList L){ int i; for(i=0;i 删除的元素打印出来,并删掉该元素
#include#include #define Maxsize 10 //定义顺序表 typedef struct{ int * elem; //定义顺序表存储空间基址 int length; //定义顺序表的长度 }SqList; SqList InitList(SqList &L){ //给顺序表分配内存 L.elem = (int *)malloc(Maxsize * sizeof(int)); //初始化顺序表长度 L.length = 0; return L; } //声明两个操作 SqList ListDelete(SqList &L,int i,int *e); void DisplayList(SqList L); int main(){ //定义顺序表 SqList L; //初始化顺序表 L = InitList(L); int i,j; int *e; //给顺序表写入数据 for(i=0;i L.length){ return L; } int j; //定义一个指针 int *p; //将要删除元素的地址赋值给指针p p = &(L.elem[i-1]); //将要删除元素的值赋值给形参,以便在主函数打印出来 *e = *p; //把要删除位置元素之后依次往前移,把要删除位置的元素覆盖掉 for(j=i;j<=L.length-1;j++){ //让后一个元素往前移动 L.elem[j-1] = L.elem[j]; } //长度减一 L.length--; return L; } void DisplayList(SqList L){ int i; for(i=0;i



