第一次写链表
Erro了n次以为错了,,结果数组开小了
#include <stdio.h>
#include <malloc.h>
long n,x[100009]={0};
struct mine
{
long pair;
struct mine *front,*next;
};
#define LEN sizeof(struct mine)
int main()
{
while (scanf("%ld",&n),n!=0)
{
int i;
for (i=1;i<=n;i++)
{
int a,b;
scanf("%d %d",&a,&b);
x[a]=i;x[b]=i;
}
struct mine *head,*p,*p0;
head=(struct mine*)malloc(LEN);
head->pair=x[1];
p0=head;
for (i=2;i<=2*n;i++)
{
p=(struct mine*)malloc(LEN);
p->pair=x[i];
p->front=p0;
p0->next=p;
p0=p;
}
p->next=head;
head->front=p;
p=head;
int t=0;
while (p->next!=p && t<=2*n)
{
if ((p->next)->pair==p->pair)
{
(p->front)->next=(p->next)->next;
((p->next)->next)->front=p->front;
n-=1;
t=0;
p=p->front;
}
else
{
t++;
p=p->next;
}
}
printf(n<=1? "Yes\n":"No\n");
}
return(0);
}