c语言单链表实现初始化、创建
时间: 2024-01-27 08:06:01 浏览: 80
单链表是一种常见的数据结构,用于存储一系列元素,每个元素包含一个值和一个指向下一个元素的指针。下面是 C 语言实现单链表的初始化和创建代码示例:
1.初始化单链表
```c
#include <stdio.h>
#include <stdlib.h>
/*定义单链表节点结构体*/
typedef struct node{
int data; //数据域
struct node *next; //指向下一个节点的指针
}Node,*pNode;
/*初始化单链表*/
pNode InitList(){
pNode head = (pNode)malloc(sizeof(Node)); //创建头节点
if(head == NULL){
printf("初始化失败,内存分配失败!\n");
exit(-1);
}
head->next = NULL; //初始化头节点的指针域为 NULL
return head;
}
```
2.创建单链表
```c
/*创建单链表*/
pNode CreateList(pNode head){
pNode p = head; //定义一个指针 p 指向头节点
int num; //定义一个变量用于存储节点的值
printf("请输入节点的值,输入 -1 结束:\n");
while(1){
scanf("%d",&num);
if(num == -1){ //输入 -1 时结束
break;
}
pNode new_node = (pNode)malloc(sizeof(Node)); //创建新节点
if(new_node == NULL){
printf("创建失败,内存分配失败!\n");
exit(-1);
}
new_node->data = num; //给新节点赋值
new_node->next = NULL; //初始化新节点的指针域为 NULL
p->next = new_node; //将新节点添加到链表尾部
p = new_node; //指针 p 指向新节点,准备添加下一个节点
}
return head;
}
```
以上代码实现了单链表的初始化和创建。初始化函数 `InitList()` 用于创建头节点并初始化,`CreateList()` 用于创建链表并添加节点。
阅读全文