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

一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。如有侵权,请留言作删文处理。

课程视频链接:

数据结构与算法基础–第3周08–2.5线性表的链式表示和实现8–单链表基本操作6–按值查找

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

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

单链表的基本操作

(1) 单链表的销毁

(2) 清空单链表

(3) 求单链表的表长

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

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

(6) 查找

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

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

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

【单链表的基本操作】

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

【知识回顾】

带头结点的单链表

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

【算法步骤】

(1) 从第 1 个结点起,依次和 e 相比较。

(2) 如果找到一个其值与 e 相等的数据元素,则返回其在链表中的 " 位置 " 或地址;

(3) 如果查遍整个链表都没有找到其值和 e 相等的元素,则返回 0 或 “NULL”。

【算法描述】按值查找:根据指定数据,获取该数据地址(返回地址)
// 在线性表 L 中查找值为 e 的数据元素
// 找到,则返回 L 中值为 e 的数据元素的地址
// 查找失败,返回 NULL
Lnode *LocateElem_L(LinkList L, ElemType e){
	// 初始化
    p = L->next;
    // 依次向后扫描
    while(p && (p->data!= e)){
        p = p->next;
    }
    
    return p;
}
【算法描述】按值查找:根据指定数据,获取该数据位置序号(返回位置)
// 在线性表 L 中查找值为 e 数据元素的位置序号
// 找到,则返回 L 中值为 e 的数据元素的位置序号
// 查找失败,返回 NULL
int LocateElem_L(LinkList L, ElemType e){
	// 初始化
    p = L->next;
    j = 1;
    // 依次向后扫描
    while(p && (p->data!= e)){
        p = p->next;
        j++;
    }
    if(p){
        return j;
    }
    else{
        return 0;
    }
}
06-30 23:32