首先 创建一个结构体来从作为链表的基本单元
typedef int DataType;
typedef struce Element{
DataType data;
Element next;
} Element, *List;
这只是第一步,这里的DataType可以根据需要来自己选择定义。在我看来链式存储最重要的是内存的分配,以便保存我们的每一个节点,下面来看这个例子,它会实现一个十个数的链式储存
Element head, *end, *node;
head = {0, NULL};
end = *head;
for (int i = 0; i < 10; ++i)
{
node = (Element*)malloc(sizeof(Element)); //动态分配地址
node->data = i;
// node->next = NULL; //注意,如果不为0可能会导致后面循环输出的时候出现死循环
end->next = node;
end = node;
}
end->next = NULL; // 收尾工作
end = head;
while(end->next){
printf("%d\n", end->data);
end = end->next;
}
注意
- 如果想要实现循环链表只需要将循环赋值中的node->next=NULL改为node->next=&head
- 这个的头结点的数据初始化为0,但是实际上是没用的,但是如果实现循环链表时要注意