链表的创建c语言带注释,运行后可以手动输入数据
时间: 2023-05-30 13:05:33 浏览: 62
#include<stdio.h>
#include<stdlib.h>
//定义链表的结构体
struct Node{
int data; //数据域
struct Node* next; //指针域
};
int main(){
struct Node* head = NULL; //定义头节点,并初始化为空
struct Node* cur = NULL; //定义当前节点,并初始化为空
int n; //输入的数据元素个数
printf("请输入数据元素个数:");
scanf("%d", &n);
printf("请依次输入%d个数据元素:", n);
for(int i = 0; i < n; i++){
int data; //输入的数据
scanf("%d", &data);
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); //动态分配内存
newNode->data = data; //将输入的数据存入新节点的数据域中
newNode->next = NULL; //将新节点的指针域初始化为空
if(head == NULL){ //如果链表为空
head = newNode; //新节点作为头节点
cur = newNode; //当前节点也是新节点
}
else{ //如果链表不为空
cur->next = newNode; //当前节点的指针域指向新节点
cur = newNode; //当前节点更新为新节点
}
}
//输出链表中的数据元素
printf("链表中的数据元素为:");
struct Node* p = head; //定义指针p指向头节点
while(p != NULL){ //遍历链表
printf("%d ", p->data); //输出当前节点的数据域
p = p->next; //指针p指向下一个节点
}
printf("\n");
return 0;
}