#include <stdlib.h>
#include <stdio.h>
struct list {
struct list *prev;
struct list *next;
};
struct list *list_head = {NULL, NULL};
void list_init(struct list *head)
{
head->next = head;
head->prev = head;
}
void list_insert(struct list **head, struct list *p)
{
strcut list *h = *head;
p->next = h->next;
p->prev = h->prev;
h->prev->next = p;
h->prev = p;
*head = p;
}
void list_remove(struct *head, struct list *p)
{
struct list *h = head;
while(h)
{
if (h == p)
{
h->prev->next = h->next;
h->next->prev = h->prev;
}
h = h->next;
}
}
int list_size(struct list *head)
{
int count = 0;
struct list *h = head;
while(h)
{
count ++;
h = h->next;
}
return count;
}
双向链表的简单实现
最新推荐文章于 2022-10-02 17:29:49 发布