链表
数据结构中链表是基础中的基础,接下来,学习一下链表
一、创建链表
//创建链表
typedef struct LinkNode//用结构体来创建
{
int id;//数据域(用来填写数据)
LinkNode* next;//指针域(用来存放下一个结点的指针)
}link_node;
二、初始化链表
编写函数:link_node* init_linklist()
建立带有头结点的单向链表,循环创建结点,结点数据域中的数值从键盘输入,以 -1 作为输入结束标志,链表的头结点地址由函数值返回.
//初始化链表
link_node* init_linklist()
{
link_node* head = NULL;//申请一个头节点,制空
head = (link_node*)malloc(sizeof(link_node));//给头节点申请内存空间
if (head == NULL)//如果头节点等于空
{
return NULL;//退出
}
//head->id = -1;//头节点,不维护数据域
head->next = NULL;//头节点指针制空(初始化)
link_node* p_current = head;//current指向第一个真实数据节点
int data = 0 ;//创建data
while (1)//循环
{
printf("插入数据:\n");
scanf("%d", &data);//输入一个int型数据
if (data == -1)//如果输入-1,就退出
{
break;
}
link_node* newnode = (link_node*)malloc(sizeof(link_node));
//创建一个新的指针newnode 给它申请内存空间
if (newnode == NULL)//如果这个指针没有地址,退出循环
{
break