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

本文介绍了如何通过头插法建立单链表,包括算法步骤和示例代码,涉及单链表的基本操作如插入、删除和查找等。文章来源于青岛大学王卓老师的教学视频,旨在分享学习笔记并供他人参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

课程视频链接:

数据结构与算法基础–第3周12–2.5线性表的链式表示和实现12–单链表基本操作10–头插法建立链表

📚 📌 📝 🔍 ⚠️ 😊 ⭐ 🔗 👋 ❓ 💬 🔹 🔸 🔖 ❗️ 💟 ➔

📚 【Week03】12_线性表的链式表示和实现12

单链表的基本操作

(1) 单链表的销毁

(2) 清空单链表

(3) 求单链表的表长

(4) 判断单链表是否为空

(5) 取值:取单链表中第 i 个元素的内容

(6) 查找

按值查找:根据指定数据获取数据所在的位置(地址)

按值查找:根据指定数据获取数据所在的位置序号

(7) 插入:在第 i 个结点前插入新结点

(8) 删除:删除第 i 个结点

(9) 单链表的建立:头插法和尾插法

【建立单链表】

头插法

元素插入在链表头部,也叫前插法。

【算法步骤】

在这里插入图片描述

(1) 从一个空表开始,重复读入数据

(2) 生成新结点,将读入数据存放到新结点的数据域中

(3) 从最后一个结点开始,依次将各结点插入到链表的前端。

例如

// 建立链表 
L(a, b, c, d, e)

在这里插入图片描述

【算法描述】
// 利用头插法建立单链表
void CreaterList_H(LinkList &L, int n){
    // 先建立一个带头结点的单链表
	L = new LNode;    
    L->next = NULL;
    for(int i=n; i>0; --i){
		// 生成新结点 p = (LNode*)malloc(sizeof(LNode));
        p = new LNode;
        // 输入元素值 scanf(&p->data)
        std::cin >> p->data;
        // 插入到表头
        p->next = L->next;
        L->next = p;
    }   
    
    return OK;
}// CreateList_H
头插法算法时间复杂度:O(n)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值