#include <stdio.h>
#include <stdlib.h>
// 尾插法新建链表
typedef int ElemType;
typedef struct LNode{
ElemType data; // 数据域
struct LNode *next; // 指针域
}LNode, *LinkList;
// LNode* 是结构体指针,和LinkList完全等价的
// 尾插法
void list_tail_insert(LinkList &L){
L = (LinkList)malloc(sizeof(LNode)); // 申请头结点空间,头指针指向头节点
L->next = NULL;
ElemType x;
scanf("%d", &x);
LNode *s, *r=L; // s指向新结点,r指向链表尾
while(x != 9999){
s = (LinkList) malloc(sizeof(LNode)); // 为新结点申请空间
s->data = x;
r->next = s; // 新结点给尾结点的next指针
r = s; // r要指向新的尾部
scanf("%d", &x);
}
r->next = NULL; // 尾结点的next为NULL
}
// 打印链表
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_tail_insert(L); // 尾插法新建链表
print_list(L); // 打印新建的链表
return 0;
}
【数据结构】尾插法新建单链表
于 2022-12-10 16:37:57 首次发布