#include
#define N 20
typedef struct
{
int data[N];
int top;
}list;
list* initlist()
{
list *s;
s=(list *)malloc(sizeof(list));
s->top=-1;
return s;
}
list * pushlist(list *s)
{
int a;
s->top++;
printf("请输入(-1结束):\n");
scanf("%d",&a);
while(a!=-1)
{
s->data[s->top]=a;
scanf("%d",&a);
s->top++;
if((s->top+1)==N)
{
printf("数据个数已到最大!!!\n");
return s;
}
}
return s;
}
list * deletlist(list *s,int x)
{
int i,k=0;
for(i=0;itop;i++)
{
if(s->data[i]==x)
k++;
else
s->data[i-k]=s->data[i];
}
s->top-=k;
return s;
}
int
poplist(list *s)
{
int i=0;
while(itop)
{
printf("%d
",s->data[i]);
i++;
}
printf("\n");
return 0;
}
int main (int argc, const char * argv[])
{
list *s;
int x;
s=initlist();
s=pushlist(s);
poplist(s);
printf("请输入要删除的数:");
scanf("%d",&x);
s=deletlist(s,x);
poplist(s);
return 0;
}