用c语言写一个简单的链表,具体要怎么用代码实现

2024-11-30 17:43:21
推荐回答(2个)
回答1:

可以用结构体和指针来实现
定义:
定义一个单个元素的结构

typedef struct Chain_tag { // 这里用typedef来定义,方便使用 int data; // 这里的数据可以是任意类型 //其他数据 struct Chain_tag *prev, *next;// 由于Chain为不完全类型,故只能用指针的方式声明} Chain;

使用:
用单个结构体的指针作为head

#include //Chain的定义写在这里 Chain *alloc_single_chain(int data /*, (其他参数)*/){ Chain *tmp; tmp = malloc(sizeof(Chain)); tmp.data = data; //...其余数据初始化 tmp.prev = tmp.next = NULL; // 将前后指针置为NULL return tmp;} voiddispose_chain(Chain *target) //其实这里功能简单,用宏实现也可以{ free(target); return;} int main(){ Chain *head; Chain *pos; head = alloc_single_chain(10);//初始化起始结点 head->next = alloc_single_chain(11);//同理。。下一个结点 for (pos = head; pos; pos = pos->next)//清理垃圾好习惯 { dispose_chain(pos); } return 0;}

回答2:

到CSDN博客上搜 C语言数据结构链表能找出很多文章和代码示例