#include <stdio.h>
#include <stdlib.h>
typedef struct Lnode
{
int data;
struct Lnode *next;
}Link;
Link *creat()
{
Link *head,*p,*q;
int x;
head=(Link *)malloc(sizeof(Link));
head->data=NULL;
p=head;
scanf("%d",&x);
while(x!=-1)
{
q=(Link *)malloc(sizeof(Link));
q->data=x;
p->next=q;
p=q;
scanf("%d",&x);
}
p->next=NULL;
return head;
}
Link *chan(Link *head,int n,int m)
{
Link *pre,*q;
pre=head;
q=pre->next;
if(m<n) return 0;
/* while(pre->next)
{
if(q->data<=n)
{
q=q->next;
pre=pre->next;
}
else if(q->data<m&&q->data>n)
{
pre->next=q->next;
free(q);
q=pre->next;
}
else break;
}*/
while(pre->next)
{
if(q->data<m&&q->data>n)
{
pre->next=q->next;
free(q);
q=pre->next;
}
else{
pre=pre->next;
q=q->next;
}
}
return head;
}
void shuchu(Link *head)
{
Link *s,*v;
s=head->next;
if(s==NULL)
{
printf("error\n");
}
while(s!=NULL)
{
printf("%2d",s->data);
s=s->next;
}
printf("\n over \n");
}
int main(int argc, char *argv[])
{
Link *head;
int m,n;
printf("输入原始线性表:-1表示结束\n");
head=creat();
printf("输入min,max的数字\n");
scanf("%d %d",&n,&m);
head=chan(head,n,m);
shuchu(head);
return 0;
}
删除表中所有值在min与max之间的元素
最新推荐文章于 2022-05-18 17:56:18 发布