本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。
一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。
如有侵权,请留言作删文处理。
课程视频链接:
数据结构与算法基础–第3周13–2.5线性表的链式表示和实现13–单链表基本操作11–尾插法建立链表
📚 📌 📝 🔍 ⚠️ 😊 ⭐ 🔗 👋 ❓ 💬 🔹 🔸 🔖 ❗️ 💟 ➔
📚 【Week03】13_线性表的链式表示和实现13
单链表的基本操作
(1) 单链表的销毁
(2) 清空单链表
(3) 求单链表的表长
(4) 判断单链表是否为空
(5) 取值:取单链表中第 i 个元素的内容
(6) 查找
按值查找:根据指定数据获取数据所在的位置(地址)
按值查找:根据指定数据获取数据所在的位置序号
(7) 插入:在第 i 个结点前插入新结点
(8) 删除:删除第 i 个结点
(9) 单链表的建立:
- 前插法(头插法)
- 后插法(尾插法)
【建立单链表】尾插法
元素插入在链表尾部,也叫后插法。
【算法步骤】
(1) 从一个空表 L 开始,将新结点逐个插入到链表的尾部,尾指针 r 指向链表的尾结点。
(2) 初始时,r 同 L 均指向头结点。每读入一个数据元素,则申请一个新结点,将新结点插入到尾结点后, r 指向新结点。
【算法描述】
// 正位序输入 n 个元素的值,建立带表头结点的单链表L
void CreateList_R(LinkList &L, int n){
L = new LNode;
L->next = NULL;
// 尾指针 r 指向头结点
r = L;
for(int i=0; i<n; ++i){
// 生成新结点,输入元素值
p = new LNode;
std::cin>>p->data;
p->next = NULL;
// 插入到表尾
r->next = p;
// r 指向新的尾结点
r = p;
}
}// CreatList_R