王道数据结构 (2) 单链表 尾插法
数据结构 单链 王道
2023-09-11 14:22:18 时间
第一步: s 是新创建的节点 s->next 表示 s 是最后一个
s->next = NULL;
第二步: r 是原来的链表 r->next = s 表示 连接 s
r->next = s;
第3步: r 指向新的表尾节点
r= s;
代码:
/*单链表(含头结点)*/ #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct LNode{ ElemType data; //数据域 struct LNode *next; // 指针域 }LNode,*LinkList; LinkList CreateFootList(ElemType a[], int n); //头插法建立单链表 void OutputList(LinkList L); void main(){ LinkList L = NULL; ElemType a[] = { 1, 2, 3, 4, 5 }; ElemType e; L = CreateFootList(a, 5); OutputList(L); } LinkList CreateFootList(ElemType a[], int n){ //头插法建立单链表 int i; LinkList L = NULL, s = NULL, r= NULL;; L = (LNode*)malloc(sizeof(LNode)); L->next = NULL; r = L; for (i = 0; i < n; i++){ s = (LNode*)malloc(sizeof(LNode)); // 创建新节点 s->data = a[i]; s->next = NULL; r->next = s; r= s; } return L; } // 输出所有链表的思路: // 1.让头节点的next 指向下一个节点 // 2. 做一个循环 当超出时打断循环 循环内的时候 p 指向下一个 p 是 现在的节点 p=p-> next 节点会向下一个移动 void OutputList(LinkList L){ //输出单链表全部元素 LinkList p = L->next; while (p){ printf("%d ", p->data); p = p->next; } printf("\n"); }
输出:
相关文章
- 【C++/数据结构】单链表的基本操作
- Linux内核数据结构
- 【数据结构初阶】单链表补充内容+又双叒叕刷链表题
- 数据结构 领取礼品的顺序 (STL+模拟)
- [数据结构]单链表及其基本操作
- 《数据结构与算法 C语言版》—— 3.1栈
- 「Java 数据结构」:手撕单链表的增删改查及大厂面试题。
- 408 | 数据结构代码算法题模板技巧 之 单链表
- linux内核数据结构 --- list_head
- 【数据结构】顺序栈的C语言实现
- 猿创征文 |【算法入门必刷】数据结构-栈(四)
- 3.1 数据结构(Graphviz)
- 《数据结构》树和二叉树代码整理(C语言实现)
- 数据结构_链表(单链表,单向循环链表,双链表)
- 【Python数据结构】——链表
- 数据结构:图(Graph)
- 王道数据结构 (29) 双链表的操作
- 查看linux内核的数据结构
- 45数据结构与算法分析之---基数排序
- [Pandas] Pandas数据结构