单链表
单链表使用指针来保存线性表数据元素的关系。
实现要点:
1.使用指针来指向下一个数据元素。
2.单链表分为带头结点的单链表、不带头结点的单链表。
3.使用带头结点的单链表不需要对空表进行特殊处理,简化操作。
优缺点和适用场景:
适用于进行大量插入、删除操作的场景,不具备随机存取的特性,访问数据必须循环遍历。
使用示例
功能:输入数据个数和数据,逆序保存到顺序表,并逆序输出显示到屏幕。
运行结果如下:
请输入数据总个数:10
请依次输入10个整数:0 1 2 3 4 5 6 7 8 9
单链表输出结果:9 8 7 6 5 4 3 2 1 0
单链表删除5位置数据后输出结果:9 8 7 6 4 3 2 1 0
代码实现:带头点的单链表
*/
#include <stdio.h>
#include <stdlib.h>
// 定义单链表数据结构
typedef struct list_node
{
int data;
struct list_node *next;
}list_node;
// 创建和初始化空链表
list_node *create_link_list()
{
// 创建头节点
list_node *head = (list_node *)malloc(sizeof(list_node));
// 头结点的data域保存长度
if(head == NULL)
return NULL;
head->data = 0;
head->next = NULL;
return head;
}
// 增加
i