C语言实现链表

由 Zoupers 发布

首先 创建一个结构体来从作为链表的基本单元

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,但是实际上是没用的,但是如果实现循环链表时要注意

暂无评论

发表评论