huan.c
#include <stdio.h>
#include <stdlib.h>
#include "huan.h"
List * creat()
{
List *l = (List *)malloc(sizeof(List));
l->first = l->last = NULL;
l->n = 0;
return l;
}
void tailIsert(List *l,Elemtype x)
{
lNode *p = (lNode *)malloc(sizeof(lNode));
p->data = x;
p->next = p->prev = NULL;
if(l->n == 0)
{
l->first = l->last = p;
}
else
{
l->last->next = p;
p->next = l->first;
p->prev = l->last;
l->last = p;
l->first->prev = l->last; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4 4++++++1
}
l->n ++;
}
void printfLkList(List * l)
{
lNode * p = l->first;
int i;
for(i=0;i<l->n;i++)//注意:循环链表中,不能使用 while(p)
{
printf("%d ",p->data);
p = p->next;
}
printf("\n");
}
void delete(List *l)
{
l->first->prev->next = l->first->next;
l->first->next->prev = l->first->prev;
l->first->next = NULL;
l->first->prev = NULL;
l->first->data = 0;
free(l->first);
}
List * tichu(List *l)
{
lNode *r = l->first;
while(l->n != 1)
{
int i = 1;
while(i<4)
{
r = l->first->next;
if(i == 3)
{
//printf("get in\n");
delete(l);
l->n--;
}
l->first = r;
i++;
}
}
return l;
}