(1)产生50个1~100的随机整数,将其中偶数依次保存在顺序表中
(2)输出顺序表的所有元素,并求顺序表的长度
(3)在指定位置i处插入一个1~100随机整数
(4)删除顺序表中值为i或者指定位置I的节点
#include<stdio.h>
# define MAXSIZE 100
typedef int elemtype;
typedef struct sequlist
{
elemtype data[MAXSIZE];
int last;
}Sequlist;
//顺序表的初始化。
Sequlist *Init_Sequlist(){
Sequlist *L;//定义顺序表的指针变量。
L=(Sequlist *)malloc(sizeof(Sequlist));//申请分配内存空间。
if(L!=NULL){
L->last=-1;//设置顺序表的长度为-1,表示顺序表为空。
}
int j=0;
for(;j<=50;j++){
elemtype d=rand()%99+1;
L->data[++L->last]=d;
}
return L;
}
//求顺序表的长度。
int Sequlist_Length(Sequlist *L){
return (L->last+1);//返回顺序表的长度。
}
//插入。
int Insert_Sequlist(Sequlist *L,elemtype x,int i){
//在指定的位置i,插入值为x的结点,L是Sequlist类型的指针变量。
int j;
if(L->last>=MAXSIZE-1){
//检查顺序表是否已满。
}
if(i<1||i>L->last+2){
return -1;
}
for(j==L->last;j>=i-1;j--)//在第i个位置插入新结点x
L->data[j+1]=L->data[j];//结点依次向后移动一个位置
L->data[i-1]=x;//插入x到第i个位置。
L->last=L->last+1; //将顺序表的长度加1.
return 1;
}
//删除指定位置的元素。
int Delete_Sequlist(Sequlist *L,int i){//删除第i个位置上的结点。
int j;
if(i<1||i>L->last+1){
return 0;
}
else
{
for(j==i;j<=L->last;j++){
L->data[j-1]=L->data[j];//结点前移。
L->last--;//表长减一。
}
return 1;//删除成功,返回-1。
}
}
//对元素的遍历。
int Print_Sequlist(Sequlist *L){
int i=0;
if(L->last==-1){
return 0;
}
for(;i<=L->last;i++){
printf("a[%2d]=%4d\t",i,L->data[i]);
if((i+1)%5==0)printf("\n");
}
return 1;
}
void main(){
Sequlist *L;
int i=3;
elemtype j=16;
L=Init_Sequlist();
Insert_Sequlist(L,j,i);
int result=Print_Sequlist(L);
if(result==1){
printf("插入成功!");
}
else printf("插入失败!");
int y=Sequlist_Length(L);
printf("%d",y);
Delete_Sequlist(L, i);
}
输出结果:
a[ 0]= 42 a[ 1]= 54 a[ 2]= 16 a[ 3]= 98 a[ 4]= 68
a[ 5]= 63 a[ 6]= 83 a[ 7]= 94 a[ 8]= 55 a[ 9]= 35
a[10]= 12 a[11]= 63 a[12]= 30 a[13]= 17 a[14]= 97
a[15]= 62 a[16]= 96 a[17]= 26 a[18]= 63 a[19]= 76
a[20]= 91 a[21]= 19 a[22]= 52 a[23]= 42 a[24]= 55
a[25]= 95 a[26]= 8 a[27]= 97 a[28]= 6 a[29]= 18
a[30]= 96 a[31]= 3 a[32]= 46 a[33]= 21 a[34]= 55
a[35]= 88 a[36]= 14 a[37]= 27 a[38]= 65 a[39]= 8
a[40]= 94 a[41]= 93 a[42]= 52 a[43]= 39 a[44]= 40
a[45]= 52 a[46]= 12 a[47]= 94 a[48]= 89 a[49]= 39
a[50]= 38 a[51]= 6 插入成功!52
在已定数组的第2位插入确定的数:16。