您的位置:首页 > 其它

双向链表的简单实现

2014-09-08 16:45 260 查看
#include <stdlib.h>
#include <stdio.h>

struct list {
struct list *prev;
struct list *next;
};

struct list *lis
8b42
t_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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: