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

news2024/11/16 4:54:11

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

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

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

课程视频链接:

数据结构与算法基础–第3周09–2.5线性表的链式表示和实现9–单链表基本操作7–插入节点

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

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

单链表的基本操作

(1) 单链表的销毁

(2) 清空单链表

(3) 求单链表的表长

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

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

(6) 查找

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

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

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

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

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

【单链表的插入】在第 i 个结点前插入值为 e 的新结点

在这里插入图片描述

【算法步骤】

在这里插入图片描述

(1) 首先找到 a_i-1 的存储位置 p。

(2) 生成一个数据域为 e 的新结点 s。

(3) 插入新结点:

  • 新结点的指针域指向结点 a_j
  • 结点 a_i-1的指针域指向新结点
❓ 思考:步骤①和②能互换吗?先执行②,后执行①,可以吗?
💬 不可以!会丢失 a_i 的地址

【算法描述】

// 在线性表 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/711196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试面试-银行篇

今天参加了一场比较正式的面试&#xff0c;汇丰银行的视频面试。在这里把面试的流程记录一下&#xff0c;结果还不确定&#xff0c;但是面试也是自我学习和成长的过程&#xff0c;所以记录下来大家也可以互相探讨一下。 请你做一下自我介绍&#xff1f;&#xff08;汇丰要求英…

如何在VUE项目中使用svg图标

一文带你搞定svg图标的使用&#xff01; 文章目录 前言一、SVG相较于字体图标的优点二、使用步骤1.新建一个vue2项目2.安装项目依赖3 .在src目录下新建文件夹4.创建svg-icon组件5.在main.js中引入icons下的index.js6.配置 vue.config.js7.步骤完毕&#xff0c;检验成果 总结 前…

LoadRunner负载均衡与IP欺骗

目录 前言&#xff1a; 一、IP wizard 二、一个IP欺骗测试脚本 三、Controller与Runtime setting设置 四、mdrv.dat配置调整 五、查看实现效果 【结语】 前言&#xff1a; 在使用 LoadRunner 进行负载测试时&#xff0c;负载均衡和 IP 欺骗是两个重要的概念。 这次出差…

【UE Unreal Camera】【保姆级教程】手把手教你通过UE打开摄像头/预览图像画面

【UE Unreal Camera】【保姆级教程】手把手教你通过UE打开摄像头/预览图像画面 概述 最近在做一个游戏的开发&#xff0c;需要通过UE去打开用户的摄像头&#xff08;ios,android上的手机摄像头&#xff1b;windows,mac上的电脑摄像头&#xff09;&#xff0c;预览图像&#xf…

NLP(五十七)LangChain使用Google Search Agent

大模型存在的问题 大模型在给人带来眼前一亮的表现&#xff0c;深深地震撼各行各业人们的同时&#xff0c;其本身也存在着不少问题。   以OpenAI的ChatGPT模型为例&#xff0c;其存在的问题有&#xff1a; 事实错误&#xff0c;容易一本正经地胡说八道&#xff0c;造成幻觉问…

重定向爬虫和多线程爬虫

前言 重定向爬虫是指在抓取网页时&#xff0c;如果目标网站内部存在重定向机制&#xff0c;即当你访问一个网页时&#xff0c;服务器会把你重定向到另一个目标网页。重定向爬虫可以帮助我们发现这种重定向链接&#xff0c;从而更有效地抓取目标网站的内容。 要实现重定向爬虫…

分享一些关于 CSS Grid 基础入门知识

网格系统&#xff08;CSS Grid&#xff09;是CSS中最重要的特性之一。它能够以简单的方式将元素对齐到列和行中。CSS网格使得设计复杂且响应式的网页变得更加容易&#xff0c;无需使用浮动、表格或定位。它还具有许多更强大的功能&#xff0c;如果你多加练习&#xff0c;就能发…

北京大学2018计算机学科夏令营上机考试

目录 A:计算两个日期之间的天数【暴力不水】 B:回文子串【暴力不水】 C:The Die Is Cast【DFS】 D:Euro Efficiency【看不懂】 E:重要逆序对【归并排序】 F:Tram【看不懂】 G:食物链【图】 H:DFS spanning tree【不会】 A:计算两个日期之间的天数【暴力不水】 //…

《微服务架构设计模式》第四章 使用Saga管理事务

内容总结自《微服务架构设计模式》 使用Saga管理事务 一、XA解决方案存在问题二、使用Saga管理事务Saga是什么补偿事务是什么Saga协调模式协同式Saga编排式Saga 隔离性Saga结构 三、总结 一、XA解决方案存在问题 在多个服务、数据库和消息代理之间维持数据一致性的传统方式是采…

小黑重庆归来,眼睛复查顺利,见到了三年没见的线上同门的leetcode之旅:剑指 Offer II 015. 字符串中的所有变位词

小黑代码1:滑动窗口 class Solution:def findAnagrams(self, s: str, p: str) -> List[int]:# 字符串长度n_s len(s)n_p len(p)if n_s < n_p:return []# 差值数组arr [0] * 26# 初始窗口for i in range(n_p):arr[ord(p[i])-97] - 1arr[ord(s[i])-97] 1# 计算初始窗口…

Web服务器群集:Tomcat配置https证书

目录 一、理论 1.SSL 2.HTTPS协议和HTTP协议的区别 3.https证书配置 4.tomcat强制使用https 二、实验 1.https证书配置过程 2.tomcat强制使用https 三、总结 一、理论 1.SSL &#xff08;1&#xff09;概念 SSL是网络加密传输协议&#xff0c;是支持在网络服务器(主…

chatgpt赋能python:烧录代码过程是怎样的

烧录代码过程是怎样的 烧录代码是将编写好的程序代码烧录进内置闪存器件&#xff08;Flash&#xff09;或外部存储器&#xff08;SD卡、EEPROM等&#xff09;中的过程。本文将介绍烧录代码的具体过程和常用工具&#xff0c;以及一些注意事项。 烧录代码的步骤 步骤一&#x…

分布式负载均衡 Ribbon

一、Ribbon简介 是Netfix发布的负载均衡&#xff0c;Eureka一般配合Ribbon进行使用&#xff0c;基于HTTP和TCP的客户端负载均衡工具。 只有负载均衡的能力&#xff0c;不具有发送请求的能力&#xff0c;要配合服务通信组件。 RestTemplate 针对各种类型的 HTTP 请求都提供了相…

青少年机器人技术一级考试备考重点(一):机器人常识

随着机器人技术的飞速发展&#xff0c;越来越多的青少年开始关注并参与其中。青少年机器人技术考试作为一项评估学生机器人技术水平的重要考试&#xff0c;备受广大青少年和家长的关注。为了更好地备战青少年机器人技术一级考试&#xff0c;了解考试的学习要点和备考重点是非常…

LeetCode-67. 二进制求和

LeetCode-67. 二进制求和 1、题目描述2、解题思路3、代码实现4、解题记录 ) 1、题目描述 题目描述&#xff1a; 给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 示例1&#xff1a; 输入:a “11”, b “1” 输出&#xff1a;“100” 示例2&…

kafka实现消息接受和发送

1、首先引入依赖 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId> </dependency> <dependency><groupId>org.springframework.kafka</groupId><artifactId>spr…

第九十五天学习记录:C++核心:类和对象Ⅳ(五星重要)

C对象模型和this指针 成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上 #include<iostream> using namespace std;class Person {int m_A;//非静态成员变量 属于类的对象上static int m_B;//静态成…

Gradio库的Gallery模块介绍与select方法详解

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

Flask boostrap实现图片视频上传下载展示

Flask boostrap实现图片视频上传下载展示 1、展示效果2、前端代码3、后端代码 1、展示效果 项目目录结构 2、前端代码 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title>&l…

Go 程序是怎样跑起来的

Go 程序是怎样跑起来的 引入 我们从一个 helloworld 的例子开始 package mainimport "fmt"func main() {fmt.Println("hello world") }用 vim 要打开&#xff0c;输入命令&#xff1a; :%!xxd下面是输出 00000000:7061 636b 6167 6520 6d61 696e 0a0a…