C语言尾插法实现创建定长度单链表
头尾指针实现插入数据
//#include <iostream>
// 单链表
# include <stdio.h>
# include <stdlib.h>
// typedef <数据类型> <别名>
// 结构体 typedef 定义简单的别名为LNode
typedef struct LNode{
// 数据域
int data;
// 指针域 节点类型 指针指向下个整个节点
struct LNode *next; // struct LNode 数据类型 int按int长度划分地址,LNode按Lnode长度划分地址
}node; // 更改 链表节点的结构体名 为node
// 创建一个长度为i的链表
node * getelem(int i) {
// 创建一个头节点
node *p = (node *)malloc(sizeof(node));
// 节点内指针为空
p->next = NULL;
// 创建一个头指针始终指向头结点
node *head = p;
// 创建一个尾指针始终指向尾节点
node *end = p; // 初始节点为空,头和为都指向同一个
// 生成一个长度为10的链表
for (int j=0;j<i;j++) {
// 创建一个新的节点
node *a = (node *)malloc(sizeof(node));
// a节点写入数据0
a->data = 0;
// 尾指针域为空
a->next = NULL;
// 在尾节点后插入该节点(尾插法)
end->next = a;
// 此时新节点为尾节点
end = a;
}
return head;
}
int main() {
node *L = getelem(10);
// 指针c存放 头指针指向的头结点
node *c = L->next;
for (int i=0;i<10;i++) {
// 读出此时节点的数据
printf("%d\n", c->data);
// 指针c指向下一个节点
c = c->next;
}
return 0;
}
版权声明:本文为qq_38393270原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。