初始化顺序表(顺序表中元素为整型),里边的元素是1,2,3,然后通过scanf读取一个元素(假如插入的是6),插入到第2个位置,打印输出顺序表,每个元素占3个空格,格式为1 6 2 3,然后scanf读取一个整型数,是删除的位置(假如输入为1),然后输出顺序表 6 2 3,假如输入的位置不合法,输出false字符串。提醒,Language一定要选为C++。
#include <stdio.h>#define MaxSize 50
typedef int ElementType;//静态分配(动态分配的有指针域必须要写名字,静态分配有别名可以不写名字)
typedef struct
{int length;ElementType data[MaxSize];
}SqList;bool ListInsert(SqList &L,int i,ElementType e)
{if(i<1||i>L.length){return false;}if(L.length==MaxSize){return false;}for (int j = L.length; j >=i ; j--) {L.data[j]=L.data[j-1];}L.data[i-1]=e;L.length++;return true;
}
bool ListDelete(SqList &L,int i,ElementType &del)
{if(i<1||i>L.length){return false;}del=L.data[i-1];for (int j = i; j <L.length ; j++) {L.data[j-1]=L.data[j];}L.length--;return true;
}
void PrintList(SqList L)
{for (int i = 0; i < L.length; i++) {printf("%3d",L.data[i]);}printf("\n");
}int main() {SqList L;//定义一个表bool ret;L.data[0]=1;L.data[1]=2;L.data[2]=3;ElementType e;//插入的元素的值scanf("%d",&e);L.length=3;//设置表的长度int i=2;//设置插入位置ret= ListInsert(L,i,e);if(ret){PrintList(L);} else{printf("false");}scanf("%d",&i);//删除的元素序号ElementType del;ret= ListDelete(L,i,del);if(ret){PrintList(L);} else{printf("false");}return 0;
}