循环链表的操作
typedef struct _Node
{
int data;
struct _Node *pre;
strcut _Node *next;
}Node;
循环链表的创建
Node *creatList()
{
Node *head=(Node *)malloc(sizeof(Node));
head->pre=head;
head->next=head;
return head;
}
链表的插入
void insertList(Node *head,int data)
{
Node *cur=(Node *)malloc(sizeof(Node));
cur->data=data;
cur->next=head->next;
cur->pre=head;
head->next=cur;
cur->next->pre=cur;
}
链表的正向遍历
void travelList(Node *head)
{
Node *t=head->next;
while(t!=head)
{
printf("%d\n",t->data):
t=t->next;
}
}
链表的反向遍历
void travelList(Node *head)
{
Node *t=head->pre;
while(t!=head)
{
printf("%d\n",t->data):
t=t->pre;
}
}