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

这篇具有很好参考价值的文章主要介绍了青岛大学_王卓老师【数据结构与算法】Week03_11_线性表的链式表示和实现11_学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

课程视频链接:

数据结构与算法基础–第3周11–2.5线性表的链式表示和实现11–单链表基本操作9–查找插入删除算法分析

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

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

单链表查找插入删除算法分析

【查找算法】
【算法描述】按值查找:根据指定数据,获取该数据地址(返回地址)
// 在线性表 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;
    }
}
【插入算法】

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

【算法描述】
// 在线性表 L 中第 i 个数据元素之前插入数据元素 e
Status ListInsert_L(LinkList L, int i, ElemType &e){
	// 初始化
    p = L;
    j = 0;
    // 寻找第 i-1 个结点,p 指向 i-1 结点
    while(p && (j<(i-1))){
        p = p->next;
        ++j;
    }
    // i 大于表长 +1 或者小于 1,插入位置非法
    if(!p || (j>(i-1))){
        // 第 i 个元素不存在
        return ERROR;
    }
    // 生成新结点 s,将结点 s 的数据域置为 e
    s = new LNode;
    s->data = e;
    // 将结点 s 插入 L 中
    s->next = p->next;
    p->next = s;
    
    return OK;
}// ListInsert_L
【删除算法】

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

【算法描述】
// 将线性表 L 中第 i 个数据元素删除
Status ListDelete_L(LinkList &L, int i, ElemType &e){
	// 初始化
    p = L;
    j = 0;
    // 寻找第 i-1 个结点,并令 p 指向其前驱
    while(p->next && (j<(i-1))){
        p = p->next;
        ++j;
    }
    // 删除位置是否合理判断
    if(!p->next || (j>(i-1))){
        // 第 i 个元素不存在
        return ERROR;
    }
    // 临时保存被删除结点的地址,以备释放
    q = p->next;
    // 改变删除结点前驱结点的指针域
    p->next = q->next;
    // 保存删除结点的数据域
    e = q->data;
	// 释放删除结点的空间
    delete q;
    
    return OK;
}// ListDelete_L
📌总结
(1) 查找算法

因线性链表只能顺序存取,即在查找时要从头指针找起,查找的时间复杂度为 O(n)。

(2) 插入和删除

因线性链表不需要移动元素,只要修改指针,一般情况下时间复杂度为 O(1)。

但是,如果要在单链表中进行前插和删除操作,由于要从头查找前驱结点,所耗时间复杂度为 O(n)。文章来源地址https://www.toymoban.com/news/detail-516796.html

到了这里,关于青岛大学_王卓老师【数据结构与算法】Week03_11_线性表的链式表示和实现11_学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记

    青岛大学_王卓老师【数据结构与算法】Week05_08_顺序栈的操作2_学习笔记

    本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–第05周08–3.3栈的表示和实现4–3.

    2024年02月16日
    浏览(23)
  • 青岛大学_王卓老师【数据结构与算法】Week05_13_队列的顺序表示和实现1_学习笔记

    青岛大学_王卓老师【数据结构与算法】Week05_13_队列的顺序表示和实现1_学习笔记

    本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–第05周13–3.5队列的表示和实现2–

    2024年02月17日
    浏览(13)
  • 青岛大学_王卓老师【数据结构与算法】Week05_14_队列的顺序表示和实现2_学习笔记

    青岛大学_王卓老师【数据结构与算法】Week05_14_队列的顺序表示和实现2_学习笔记

    本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–第05周14–3.5队列的表示和实现3–

    2024年02月16日
    浏览(14)
  • 青岛大学_王卓老师【数据结构与算法】Week05_01_栈和队列的定义和特点1_学习笔记

    青岛大学_王卓老师【数据结构与算法】Week05_01_栈和队列的定义和特点1_学习笔记

    本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–第05周01–3.1栈和队列的定义和特点

    2024年02月15日
    浏览(11)
  • 青岛大学_王卓老师【数据结构与算法】Week03_11_线性表的链式表示和实现11_学习笔记

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

    本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–第3周11–2.5线性表的链式表示和实现

    2024年02月12日
    浏览(16)
  • 数据结构与算法基础(青岛大学-王卓)(5)

    数据结构与算法基础(青岛大学-王卓)(5)

    叮叮咚咚,新一期来袭,我还在吃桃子,吃桃子,吃桃子。。。串和python的字符串差不多,数组和广义表像是python的list 串(string) - 字符串 概念及术语 定义: 零个或多个任意字符组成的有限序列,是一种内容受限的线性表 子串 : 串中任意个连续字符组成的子序列称为该串的

    2024年02月09日
    浏览(12)
  • 数据结构与算法基础(青岛大学-王卓)(1)

    数据结构与算法基础(青岛大学-王卓)(1)

    程序=数据结构+算法 数据(data) 数值型 非数值型(文字,图像…) 数据元素(data element) 数据的基本单位,在程序中当做一个整体进行考虑和处理(如表中的一行包含多列信息) 是数据这个集合的个体 数据项(data item) 构成数据元素的不可分割的 最小单位 () 数据对象(data object) 性质相

    2024年02月03日
    浏览(9)
  • 数据结构与算法基础(青岛大学-王卓)(6)

    数据结构与算法基础(青岛大学-王卓)(6)

    啊呀呀,不小心又断更快一个月了,我还是认真每天学习滴,最近还是香瓜,菜瓜,西瓜,羊角蜜不能停口啊,哈哈,二叉树这一章真是硬茬,难啃啊。 树的定义 树的深度 :树中节点的最大层次 有序树 : 树中结点的各子树从左至右有次序 ( 最左边的为第一个孩子 ) 无序

    2024年02月16日
    浏览(24)
  • 体验百度文心一言AI大模型生产生成河南大学、太原理工大学、哈尔滨工程大学和青岛大学简介

    体验百度文心一言AI大模型生产生成河南大学、太原理工大学、哈尔滨工程大学和青岛大学简介

    河南大学(Henan University),简称“河大”,坐落于中国河南省,是河南省人民政府与中华人民共和国教育部共建高校,国家“双一流”建设高校,入选国家“111计划”、中西部高校基础能力建设工程、卓越医生教育培养计划、卓越法律人才教育培养计划、卓越教师培养计划、

    2024年02月11日
    浏览(14)
  • 24届近3年青岛理工大学自动化考研院校分析

    24届近3年青岛理工大学自动化考研院校分析

    今天给大家带来的是 青岛理工 大学 控制考研分析 满满干货~还不快快点赞收藏  青岛理工大学是一所以工为主,土木建筑、机械制造、环境能源学科特色鲜明,理工经管文法艺等学科协调发展的多科性大学。是国家首批地方高校“111计划”建设单位、全国首批深化创新创业

    2024年02月13日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包