已知长度为n的线性表A中的元素是整数,采用顺序储存结构,删除线性表中所有值为x的数据元素.
已知长度为n的线性表A中的元素是整数,采用顺序储存结构,删除线性表中所有值为x的数据元素.
要完整程序~
#include
#include
#define maxsize 100
typedef struct
{
int *elem;
int length;
}sqllist;
void deletenumber(sqllist *A,int x,int k)
{
int i,j;
if(k!=A->length)
{
for(i=0;ilength;i++)
{
if(*(A->elem+i)==x)
{
for(j=i;jlength-1;j++)
{
*(A->elem+j)=*(A->elem+j+1);
}
A->length--;
k=i;
break;
}
}
deletenumber(A,x,k);
}
}
void init(sqllist *A)
{
int i;
int n;
A->elem=(int *)malloc(sizeof(int)*maxsize);
printf("请输入整数n\n");
scanf("%d",&n);
A->length=n;
for(i=0;ielem+i);
}
}
void output(sqllist *A)
{
int i;
printf("顺序表中数值为:\n");
for(i=0;ilength;i++)
printf("%d ",*(A->elem+i));
printf("\n");
}
void main()
{
sqllist *A;
int x;
A=(sqllist *)malloc(sizeof(sqllist));
init(A);
output(A);
printf("请输入准备删除的数值x\n");
scanf("%d",&x);
deletenumber(A,x,1);
output(A);
}