#include <stdio.h>
#include <stdlib.h>
// 头插法新建链表
typedef int ElemType;
typedef struct LNode{
ElemType data; // 数据域
struct LNode *next; // 指针域
}LNode, *LinkList;
// LNode* 是结构体指针,和LinkList完全等价的
// 头插法
void list_head_insert(LinkList &L){
L = (LinkList)malloc(sizeof(LNode)); // 申请头结点空间,头指针指向头节点
L->next = NULL;
ElemType x;
scanf("%d", &x);
LNode *s; // 用来指向申请的新结点
while(x != 9999){
s = (LinkList) malloc(sizeof(LNode));
s->data = x;
s->next = L->next; // s的next指向原本链表的第一个结点
L->next = s; // 头结点的next指向新结点
scanf("%d", &x);
}
}
// 打印链表
void print_list(LinkList L){
L = L->next;
while(L != NULL){
printf("%3d", L->data);
L = L->next;
}
printf("\n");
}
int main() {
LinkList L; // L是链表头指针,是结构体指针类型
list_head_insert(L); // 头插法新建链表
print_list(L); // 打印新建的链表
return 0;
}
【数据结构】头插法新建单链表
最新推荐文章于 2023-11-03 19:35:58 发布