该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
struct cell{
int x;
struct cell*next;
};
struct cell*build(){
struct cell*head,*p,*tmp;
p=tmp=head=NULL;
head=(struct cell*)malloc(sizeof(struct cell));
head->x=0;
tmp=head;
tmp->next=NULL;
do{
p=(struct cell*)malloc(sizeof(struct cell));
scanf("%d",&p->x);
tmp->next=p;
tmp=p;
tmp->next=NULL;
}while(p->x<100);
return head;
}
void check1(struct cell*head){
int i,j,k,n,a[n];
struct cell*p;
p=head;
for(i=1;p!=NULL;i++){
n=i;
p=p->next;
}
for(i=0;i
a[i]=p->x;
p=p->next;
}
for(i=0;i
for(j=i+1;j
if(a[j]
a[i]=k;
a[i]=a[j];
a[j]=k;
}
}
}
for(i=0;i
printf("%d ",a[i]);
}
printf("%d \n",a[n-1]);
}
struct cell*check2(struct cell*head){
struct cell*p,*q,*r,*t;
p=head;
while(p!=NULL){
q=p;
while(q->next!=NULL){
if(q->x==q->next->x){
r->next=q;
t=q->next;
r->next=t->next;
}
else{
q=q->next;
}
}
p=p->next;
}
return head;
}
void print(struct cell*head){
struct cell*p,*q;
p=head;
while(p->x<=100){
q=p->next;
printf("%d ",p->next);
p=p->next;
}
printf("%d ",p->x);
}
void release(struct cell*head){
struct cell*p;
while(head!=NULL){
p=head;
head=p->next;
free(p);
}
}
int main(void){
struct cell*head,*m;
check1(head);
m=check2(head);
print(m);
release(m);
}