当前位置: 首页 > news >正文

【数据结构/C++】线性表_单链表的基本操作

image.png

image.png

image.png

#include <iostream>
using namespace std;
// 2. 单链表
// ElemType 的定义
typedef int ElemType;
typedef struct LNode
{ElemType data;struct LNode *next;
} LNode, *LinkList;
// 初始化单链表
bool InitList(LinkList &L)
{L = (LNode *)malloc(sizeof(LNode));// 内存不足,分配失败if (L == NULL){return false;}L->next = NULL;return true;
}
// 在第 i 个位置插入元素
bool ListInsert(LinkList &L, int i, ElemType e)
{if (i < 1){return false;}// 指针 p 指向当前扫描到的结点LNode *p = L;// 当前p指向第几个结点int j = 0;// L 指向头结点,头结点是第 0 个结点p = L;while (p != NULL && j < i - 1){p = p->next;j++;}// i 不合法if (p == NULL){return false;}LNode *s = (LNode *)malloc(sizeof(LNode));s->data = e;s->next = p->next;p->next = s;return true;
}
// 删除第 i 个元素
bool ListDelete(LinkList &L, int i, ElemType &e)
{if (i < 1){return false;}LNode *p = L;int j = 0;p = L;while (p != NULL && j < i - 1){p = p->next;j++;}if (p == NULL){return false;}if (p->next == NULL){return false;}// q 指向被删除的结点LNode *q = p->next;// e 来接收返回的删除值e = q->data;p->next = q->next;free(q);return true;
}
// 遍历单链表
void ListTraverse(LinkList L)
{LNode *p = L->next;while (p != NULL){cout << p->data << " ";p = p->next;}cout << endl;
}
// 将单链表逆置
void ReverseList(LinkList &L)
{// LNode *p = L->next;LNode *q = NULL;LNode *r = NULL;L->next = NULL;while (p != NULL){// 头插法(相当于原单链表这个队列不断取出每一个元素向新的链表头插入)// q 指向新链表的头// p 指向正在操作的某个结点// r 暂存下一个将要操作的结点q = L->next;L->next = p;r = p->next;p->next = q;p = r;}
}int main()
{LinkList L;InitList(L);for (int i = 1; i <= 10; i++){ListInsert(L, i, i);}ListTraverse(L);ReverseList(L);ListTraverse(L);ReverseList(L);ElemType e;ListDelete(L, 3, e);ListTraverse(L);ListDelete(L, 1, e);ListTraverse(L);return 0;
}

相关文章:

【数据结构/C++】线性表_单链表的基本操作

#include <iostream> using namespace std; // 2. 单链表 // ElemType 的定义 typedef int ElemType; typedef struct LNode {ElemType data;struct LNode *next; } LNode, *LinkList; // 初始化单链表 bool InitList(LinkList &L) {L (LNode *)malloc(sizeof(LNode…...

flink1.13.6版本的应用程序(maven版)

问题 想要一个指定flink版本的java计算任务hello world最简工程。 解决 mvn archetype:generate \-DarchetypeGroupIdorg.apache.flink \-DarchetypeArtifactIdflink-quickstart-java \-DarchetypeVersion1.13.6这里直接使用官方mave模版工程&#xff0c;指…...

深度学习之四(循环神经网络Recurrent Neural Networks,RNNs)

概念 循环神经网络(Recurrent Neural Networks,RNNs)是一类专门用于处理序列数据的神经网络,它在处理时考虑了序列数据的顺序和上下文信息。RNNs 在自然语言处理、时间序列分析、语音识别等领域得到广泛应用。 1. 基本结构: RNN 的基本结构包含一个或多个循环单元,每个…...

【论文精读】HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face 前言Abstract1 Introduction2 Related Works3 HuggingGPT3.1 Task PlanningSpecification-based InstructionDemonstration-based Parsing 3.2 Model SelectionIn-context Task-model Assignment 3…...

安装gitlab

安装gitlab 环境 关闭防火墙以及selinux&#xff0c;起码4核8G 内存至少 3G 不然启动不了 下载环境 gitlab官网&#xff1a;GitLab下载安装_GitLab最新中文基础版下载安装-极狐GitLab rpm包下载地址&#xff1a; [Yum - Nexus Repository Manager (gitlab.cn)](https://pack…...

Nginx模块开发之http handler实现流量统计(1)

文章目录 一、handler简介二、Nginx handler模块开发2.1、示例代码2.2、编写config文件2.3、编译模块到Nginx源码中2.4、修改conf文件2.5、执行效果 三、Nginx的热更新总结 一、handler简介 Handler模块就是接受来自客户端的请求并产生输出的模块。 配置文件中使用location指令…...

JSP编写自己的第一个WebServlet实现客户端与服务端交互

我们在项目中找到java目录 下面有一个包路径 然后 我们在下面创建一个类 我这里叫 TransmissionTest 当然 名字是顺便取的 参考代码如下 package com.example.dom;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet…...

三、Keil安装芯片包、下载固件库、建立STM32工程模板

目录 一、首先在Keil软件上安装好芯片包 二、下载官方固件库 三、建立基于固件库的Keil5工程模板 一、首先在Keil软件上安装好芯片包 STM32有很多系列的芯片&#xff0c;我们平常用的最多的是STM32F1系列的&#xff0c;因此安装F1系列的芯片包在我们初学时&#xff0c;只按照…...

微信相框M1-03花屏抢救照片数据

故障现象 相册屏幕花屏&#xff0c;无法显示&#xff0c;拔掉电源黑屏&#xff08;内部自带锂电池的&#xff09; 问题排查 开始怀疑屏幕故障&#xff0c;拆开看到内部&#xff0c;发现是锂电池时间长鼓包后&#xff0c;顶到PCB&#xff0c;PCB板已经翘曲了&#xff0c;导致花…...

小程序可拖拽按钮

你有没有遇到过在页面中有一个固定在某个位置的按钮&#xff0c;永远的挡住了你想要看的区域&#xff1f; 在小程序的列表页面中&#xff0c;常常会有一个提报的入口固定在右下角&#xff0c;如果这个按钮不可拖动的话&#xff0c;可能会挡住下面的事件&#xff0c;让用户操作起…...

ARM裸机-19(NandFlash和iNand)

1、NandFlash的接口 1.1、Nand的型号与命名 (1)、Nand的型号命名都有含义&#xff0c;就拿K9F2G08来示例分析一下&#xff1a;K9F表示是三星公司的NandFlash系列。2G表示Nand的大小是2Gbit (256MB)。08表示Nand是8位的 (8位就是数据线有8根)。 (2)、Nand命名中可以看出&#x…...

机器学习/sklearn笔记:MeanShift

1 算法介绍 一种基于质心的算法通过更新候选质心使其成为给定区域内点的均值候选质心的位置是通过一种称为“爬山”技术迭代调整的&#xff0c;该技术找到估计的概率密度的局部最大值 1.1 基本形式 给定d维空间的n个数据点集X&#xff0c;那么对于空间中的任意点x的均值漂移…...

opencv-简单图像处理

图像像素存储形式  对于只有黑白颜色的灰度图&#xff0c;为单通道&#xff0c;一个像素块对应矩阵中一个数字&#xff0c;数值为0到255, 其中0表示最暗&#xff08;黑色&#xff09; &#xff0c;255表示最亮&#xff08;白色&#xff09; 对于采用RGB模式的彩色图片&#…...

Linux(Kali\Ubuntu\CentOS\arm-Linux)安装Powershell

文章目录 Linux(Kali\Ubuntu\CentOS\arm-Linux)安装Powershell启动PowershellKaliUbuntuCentOSarm-Linux离线安装参考链接 Linux(Kali\Ubuntu\CentOS\arm-Linux)安装Powershell 启动Powershell pwshKali apt update && apt -y install powershellUbuntu # 更新包列…...

ubuntu20.04安装多版本cuda,切换版本

1. 安装cuda toolkit: 下载网站 https://developer.nvidia.com/cuda-11.3.0-download-archive 选择版本&#xff0c;这里选择11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run给cuda权限: chmod x…...

网络渗透测试(wireshark 抓取QQ图片)

1.打开wireshark 这里我用的wifi连接 所以点开wifi就好 打开wifi之后就开始在本机上进行抓包了 我们先给我们的QQ发送一张图片&#xff0c;用自己的手机发送给电脑 然后点击左上角的正方形&#xff0c;停止捕获抓包 QQ的关键词是oicq&#xff0c;所以我们直接找 打开oicq …...

gRPC之gRPC负载均衡(客户端负载均衡)(etcd)

1、gRPC负载均衡(客户端负载均衡)(etcd) 本篇将基于etcd的服务发现前提下&#xff0c;介绍如何实现gRPC客户端负载均衡。 1.1 gRPC负载均衡 gRPC官方文档提供了关于gRPC负载均衡方案Load Balancing in gRPC https://github.com/grpc/grpc/blob/master/doc/load-balancing.m…...

语音识别技术paddlespeech的安装和使用

PaddleSpeech 介绍 PaddleSpeech是百度飞桨&#xff08;PaddlePaddle&#xff09;开源深度学习平台的其中一个项目&#xff0c;它基于飞桨的语音方向模型库&#xff0c;用于语音和音频中的各种关键任务的开发&#xff0c;包含大量基于深度学习前沿和有影响力的模型。PaddleSpe…...

【机器学习】034_多层感知机Part.2_从零实现多层感知机

一、解决XOR问题 1. 回顾XOR问题&#xff1a; 如图&#xff0c;如何对XOR面进行分割以划分四个输入 对应的输出 呢&#xff1f; 思路&#xff1a;采用两个分类器分类&#xff0c;每次分出两个输入 &#xff0c;再借助这两个分类从而分出 。 即采用同或运算&#xff0c;当两…...

2023年中职“网络安全“—Web 渗透测试①

2023年中职"网络安全"—Web 渗透测试① Web 渗透测试任务环境说明&#xff1a;1.访问地址http://靶机IP/task1&#xff0c;分析页面内容&#xff0c;获取flag值&#xff0c;Flag格式为flag{xxx}&#xff1b;2.访问地址http://靶机IP/task2&#xff0c;访问登录页面。…...

车联网MQTT 消息处理的高并发优化

背景 在车联网场景中&#xff0c;数采平台需要实时接收数百至上千辆车辆的上报数据&#xff0c;涵盖实时遥测、心跳、故障、状态变更等多种消息类型。每辆车按 10~30 秒间隔上报&#xff0c;千辆车并发意味着每秒需要处理数十到上百条 MQTT 消息&#xff0c;且每条消息需经过解…...

大路灯护眼灯哪个牌子好?落地护眼大路灯灯排行榜前十名品牌推荐

在快节奏的现代生活&#xff0c;眼睛酸痛和视觉疲劳似乎成为了生活的一部分&#xff0c;很多人都会选择用护眼大路灯来改善不良环境带来的视觉疲劳和酸痛感&#xff0c;但是&#xff0c;要是不慎购买到做工用料差、缺乏专业技术优化的劣质护眼大路灯&#xff0c;会因光线不稳定…...

minimax_image插件基本上能做到无AI感出图了

minimax_image插件介绍minimax_image插件能够通过调用minimax模型生成图像&#xff0c;注意&#xff1a;使用时需要提供minimax的 api key (api 密钥)和 group id (组id)。如何安装 minimax_image 插件步骤 1&#xff1a;进入工具市场在 InfiniSynapse &#xff08;网页版&…...

Cursor Pro破解终极指南:3步实现AI编程助手永久免费使用

Cursor Pro破解终极指南&#xff1a;3步实现AI编程助手永久免费使用 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…...

强化学习在动态旅行规划中的应用与优化

1. 项目概述&#xff1a;当强化学习遇上旅行规划作为一名长期关注AI技术落地的从业者&#xff0c;我见证了大型语言模型&#xff08;LLM&#xff09;从单纯的文本生成工具逐步进化为能够处理复杂任务的智能体。DeepTravel框架的出现&#xff0c;标志着旅行规划领域正式迈入&quo…...

拯救损坏视频的终极方案:用Untrunc轻松修复MP4/MOV文件

拯救损坏视频的终极方案&#xff1a;用Untrunc轻松修复MP4/MOV文件 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否经历过这样的绝望时刻&#xff1f;精心拍摄…...

如何用html-to-docx实现HTML到Word文档的无缝转换?

如何用html-to-docx实现HTML到Word文档的无缝转换&#xff1f; 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx 你是否曾经需要将网页内容或HTML格式的报告转换为标准的Word文档&#xff0c;却遭遇了格…...

LM Evaluation Harness:语言模型评估的标准化实践

1. 项目背景与核心价值在语言模型(LM)评估领域&#xff0c;基准测试(benchmarks)的整合一直是个既基础又关键的课题。去年我在为团队选型评估框架时&#xff0c;发现大多数开源方案都存在"评估孤岛"问题——每个benchmark就像一座数据孤岛&#xff0c;需要单独准备数…...

【2024最严AI代码沙箱标准】:NIST SP 800-190合规配置清单+实测性能损耗<2.3%

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;【2024最严AI代码沙箱标准】核心要义与NIST SP 800-190合规性全景解读 AI代码沙箱已从可选实践跃升为强制性安全基线。2024年发布的《AI代码运行环境最小保障规范》&#xff08;ACRE-2024&#xff09;明…...

时间序列预测实战:从特征工程到XGBoost模型构建

1. 项目概述&#xff1a;一个基于数据驱动的预测工具最近在整理一些数据分析项目时&#xff0c;发现了一个挺有意思的仓库&#xff0c;叫ssq-predictor。从名字就能看出来&#xff0c;这是一个针对特定数字序列的预测工具。虽然项目本身可能带有一些娱乐性质&#xff0c;但它背…...