#include "stdio.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"
struct node {
int data; //存储数据
struct node* next; //保存下一个结点的地址
};
int main() {
struct node* p, * head, * q; //创建了三个指针 p head q
int i; //定义一个整型变量i
head = (struct node*)malloc(sizeof(struct node)); // 动态分配内存
head->data = 1; // 初始化头结点的数据为1
head->next = NULL; // 定义该连表为为一个空的链表
printf("请输入四个元素:"); // 输4入个元素
// 头插法
for (i = 1; i < 5; i++) { // 进行4次循环
q = (struct node*)malloc(sizeof(struct node)); // 为q申请空间
scanf_s("%d", &q->data); // 使用scanf_s读取输入
q->next = head->next; // 将head的下一个结点指向q的指针域
head->next = q; // 将q结点指向head的指针域
}
/* 尾插法
p = head;
for (i = 1; i < 5; i++) {
q = (struct node*)malloc(sizeof(struct node));
scanf_s("%d", &q->data);
q->next = p->next;
p->next = q;
p = p->next;
}
*/
while (head) { // 当head不为空 退出循环
printf("%d\n ", head->data); // 打印当前head的数据域
head = head->next; // 更新head指向下一个结点
}
}
c语言 单列表的头插法和尾插法代码
于 2024-09-25 22:27:25 首次发布