#include<stdio.h>
#include<stdlib.h>
// 单向循环链表
typedef int datatype_t;
typedef struct node
{
datatype_t data;
struct node *next;
} looplist_t;// 这里的looplist_t是node结构的的别名 因为前面有typedef
// 创建空表
looplist_t* looplist_create() {
looplist_t *h;
h = (looplist_t *)malloc(sizeof(looplist_t));
h->next = h;
return h;
}
// 头插法插入数据
int looplist_head_insert(looplist_t *h, datatype_t value) {
looplist_t *temp;
temp = (looplist_t *)malloc(sizeof(looplist_t));
temp->data = value;
temp->next = h->next;
h->next = temp;
return 0;
}
// 尾插法
int looplist_tail_insert(looplist_t *h, datatype_t value) {
looplist_t *temp;
temp = (looplist_t *)malloc(sizeof(looplist_t));
temp->data = value;
looplist_t *p;
p = h;
while (h->next != p)
{
h = h->next;
}
h->next = temp;
temp->next = p;
return 0;
}
// 显示数据
int looplist_show(looplist_t *h) {
looplist_t *p = h;
while (h->next != p)
{
h = h->next;
printf("%d ", h->data);
}
printf("\n");
return 0;
}
int main() {
looplist_t *h;
h = looplist_create();
looplist_head_insert(h, 100);
looplist_head_insert(h, 200);
looplist_head_insert(h, 300);
looplist_tail_insert(h, 33);
looplist_show(h);
return 0;
}
C语言实现单向循环链表
于 2022-10-08 15:29:12 首次发布