青岛大学_王卓老师【数据结构与算法】Week03_13_线性表的链式表示和实现13_学习笔记

本文是学习笔记,介绍了青岛大学王卓老师数据结构与算法课程中的单链表内容,特别是如何通过尾插法建立链表。该方法从空表开始,逐步将新节点插入到链表尾部,时间复杂度为O(n)。

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。

一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。

如有侵权,请留言作删文处理。

课程视频链接:

数据结构与算法基础–第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
尾插法算法时间复杂度:O(n)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值