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

线性表的链式表示——单链表;头插,尾插,按值查找,按序号查找,插入,删除;

#include <iostream>
#include <algorithm>//fill()
#define InitSize 5using namespace std;/*线性表:链式表示——单链表;头插,尾插,按值查找,按序号查找,插入,删除*/
typedef struct LNode{int data;struct LNode *next;
}LNode,*LinkList;void List_Output(LinkList L){LNode *s;s=L->next;while(s!=NULL){printf("%d ",s->data);s=s->next;}printf("\n");
}LinkList List_HeadInsert(LinkList &L){LNode *s;int x;L=(LNode *)malloc(sizeof(LNode));L->next=NULL;scanf("%d",&x);while(x!=999){s=(LNode *)malloc(sizeof(LNode));s->data=x;s->next=L->next;L->next=s;scanf("%d",&x);}return L;
}LinkList List_TailInsert(LinkList &L){LNode *s,*r;int x;L=(LNode *)malloc(sizeof(LNode));L->next=NULL;r=L;scanf("%d",&x);while(x!=999){s=(LNode *)malloc(sizeof(LNode));s->data=x;r->next=s;r=s;scanf("%d",&x);}r->next=NULL;return L;
}LNode *GetElem(LinkList L,int i){//得到第i个位置(头节点的下一个节点为第1个位置);LNode *p=L->next;int j=1;if(i==0)return NULL;while(p&&j<i){p=p->next;j++;}return p;
}LNode *GetElem2(LinkList L,int e){LNode *p=L->next;while(p!=NULL&&p->data!=e)p=p->next;return p;
}LinkList List_Insert(LinkList &L,LNode *s,int i){//插入到第i个位置(头节点的下一个节点为第1个位置);前插操作:先找到i-1,插到i-1的后面LNode *p;p=GetElem(L,i-1);s->next=p->next;p->next=s;return L;
}LinkList List_Insert2(LinkList &L,LNode *s,LNode *p){//已给出s和p,将s插入到p的前面:先插到后面,再交换值s->next=p->next;p->next=s;int temp;temp=p->data;p->data=s->data;s->data=temp;return L;
}LinkList List_Delete(LinkList &L,int i){//删除第i个结点LNode *p;p=GetElem(L,i-1);LNode *q;q=(LNode *)malloc(sizeof(LNode));q=p->next;p->next=q->next;free(q);return L;
}LinkList List_Delete2(LinkList &L,LNode *p){LNode *q;q=(LNode *)malloc(sizeof(LNode));q=p->next;p->data=p->next->data;p->next=q->next;free(q);return L;
}
int main()
{/*线性表:链式表示——单链表;头插,尾插,按值查找,按序号查找,插入第i个位置,插入已给结点的后面,删除第i个结点,删除已给结点*//*LinkList L2;List_HeadInsert(L2);List_Output(L2);*/LinkList L;List_TailInsert(L);List_Output(L);//LNode *s;//s=GetElem(L,2)//获取第i个结点(头节点的下一个节点为第1个位置)//printf("%d\n",s->data);//LNode *s1=GetElem(L,3);//GetElem2(L,2);//printf("%d\n",s1->data);/*LNode *s3;s3=(LNode *)malloc(sizeof(LNode));s3->data=9;List_Insert(L,s3,2);//插入到第i个位置List_Output(L);*//*LNode *p=GetElem(L,2);LNode *s2;s2=(LNode *)malloc(sizeof(LNode));s2->data=9;List_Insert2(L,s2,p);//将s插入到p的前面List_Output(L);*///List_Delete(L,2);//List_Output(L);/*LNode *p;p=L->next->next;//给出需要删除的结点List_Delete2(L,p);List_Output(L);*/return 0;
}

相关文章:

线性表的链式表示——单链表;头插,尾插,按值查找,按序号查找,插入,删除;

#include <iostream> #include <algorithm>//fill() #define InitSize 5using namespace std;/*线性表&#xff1a;链式表示——单链表&#xff1b;头插&#xff0c;尾插&#xff0c;按值查找&#xff0c;按序号查找&#xff0c;插入&#xff0c;删除*/ typedef st…...

【Spring Cloud系统】- Zookeer特性与使用场景

【Spring Cloud系统】- Zookeer特性与使用场景 一、概述 Zookeeper是一个分布式服务框架&#xff0c;是Apache Hadoop的一个子项目&#xff0c;它主要是用来解决分布式应用中经常遇到的一些数据管理问题。如&#xff1a;统一命名服务、状态同步服务、集群管理、分布式应用配置…...

最新AI智能创作系统源码SparkAi系统V2.6.3/AI绘画系统/支持GPT联网提问/支持Prompt应用/支持国内AI模型

一、智能AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统&#xff0c;已支持OpenAIGPT全模型国内AI全模型&#xff0c;已支持国内AI模型 百度文心一言、微软Azure、阿里云通义千问模型、清华智谱AIChatGLM、科大讯飞星火大模型等。本期针对源码…...

R | R包默认安装路径的查看及修改

R | R包默认安装路径的查看及修改 一、R包安装位置查看二、已安装R包查询三、R包安装位置修改四、R包安装位置永久修改 在【R: R package安装的几种方式】【R: R版本更新及R包迁移&#xff08;详细步骤&#xff09;】两篇文章中介绍过R包的常见安装方式&#xff0c;以及在不同R…...

将conda虚拟环境打包并集成到singularity镜像中

1. 使用yml文件打包 conda activate your_env conda env export > environment.yml编写cond.def文件 Bootstrap: dockerFrom: continuumio/miniconda3%filesenvironment.yml%post/opt/conda/bin/conda env create -f environment.yml%runscriptexec /opt/conda/envs/$(hea…...

Android Studio 是如何和我们的手机共享剪贴板的

背景 近期完成了target33的项目适配升级,随着AGP和gradle的版本升级,万年老版本Android Studio(后文简称AS)也顺便升级到了最新版Android Studio Giraffe | 2022.3.1,除了新UI外,最让我好奇的是这次的Running Devices功能(官方也称为Device mirroring)可以控制真机了. 按照操…...

大数据面试题:Spark和MapReduce之间的区别?各自优缺点?

面试题来源&#xff1a; 《大数据面试题 V4.0》 大数据面试题V3.0&#xff0c;523道题&#xff0c;679页&#xff0c;46w字 可回答&#xff1a; 1&#xff09;spark和maprecude的对比&#xff1b;2&#xff09;mapreduce与spark优劣好处 问过的一些公司&#xff1a;阿里云…...

【开发篇】十八、SpringBoot整合ActiveMQ

文章目录 1、安装ActiveMQ2、整合3、发送消息到队列4、使用消息监听器对消息队列监听5、流程性业务消息消费完转入下一个消息队列6、发布订阅模型 1、安装ActiveMQ docker安装 docker pull webcenter/activemqdocker run -d --name activemq -p 61616:61616 -p 8161:8161 webce…...

QTcpSocket 接收数据实时性问题

一、开发背景 使用 Qt 的 QTcpSocket 接收数据的时候发现数据接收出现粘包的现象&#xff0c;并且实时性很差&#xff0c;通过日志的时间戳发现数据接收的误差在 100ms 以内。 二、开发环境 Qt5.12.2 QtCreator4.8.2 三、实现步骤 在 socket 连接的槽函数设置接收延时时间&…...

前端el-select 单选和多选

el-select单选 <el-form-item label"部门名称" prop"departId"><el-select v-model"dataForm.departId" placeholder"请选择" clearable:style{ "width": "100%" } :multiple"false" filtera…...

【MySQL】Linux 中 MySQL 环境的安装与卸载

文章目录 Linux 中 MySQL 环境的卸载Linux 中 MySQL 环境的安装 Linux 中 MySQL 环境的卸载 在安装 MySQL 前&#xff0c;我们需要先将系统中以前的环境给卸载掉。 1、查看以前系统中安装的 MySQL rpm -qa | grep mysql2、卸载这些 MySQL rpm -qa | grep mysql | args yum …...

机器学习算法分类

学习视频黑马程序员 监督学习 无监督学习 半监督学习 强化学习...

Mysql bin-log日志恢复数据与物理备份-xtrabackup

主打一个数据备份与恢复 binlog与xtarbackup bin-log日志恢复开启bin-log配置bin-log日志恢复 物理备份-xtrabackup三种备份方式安装xtrabackup备份全量备份增量备份差异备份 bin-log日志恢复 bin-log 日志&#xff0c;就记录对数据库进行的操作&#xff0c;什么增删改的操作全…...

JAVA 学习笔记 2年经验

文章目录 基础String、StringBuffer、StringBuilder的区别jvm堆和栈的区别垃圾回收标记阶段清除阶段 异常类型双亲委派机制hashmap和hashtable concurrentHashMap 1.7和1.8的区别java的数据结构排序算法&#xff0c;查找算法堆排序 ThreadLocal单例模式常量池synchronizedsynch…...

网络安全--安全认证、IPSEC技术

目录 1. 什么是数据认证&#xff0c;有什么作用&#xff0c;有哪些实现的技术手段&#xff1f; 2. 什么是身份认证&#xff0c;有什么作用&#xff0c;有哪些实现的技术手段&#xff1f; 3. 什么是VPN技术&#xff1f; 4. VPN技术有哪些分类&#xff1f; 5. IPSEC技术能够…...

Mysql——创建数据库,对表的创建及字段定义、数据录入、字段增加及删除、重命名表。

一.创建数据库 create database db_classics default charsetutf8mb4;//创建数据库 use db_classics;//使用该数据库二.对表的创建及字段定义 create table if not exists t_hero ( id int primary key auto_increment, Name varchar(100) not null unique, Nickname varchar(1…...

第1篇 目标检测概述 —(4)目标检测评价指标

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。目标检测评价指标是用来衡量目标检测算法性能的指标&#xff0c;可以分为两类&#xff0c;包括框级别评价指标和像素级别评价指标。本节课就给大家重点介绍下目标检测中的相关评价指标及其含义&#xff0c;希望大家学习之后…...

前端和后端是Web开发中的两个不同的领域,你更倾向于哪一种?

前端和后端是Web开发中的两个不同的领域&#xff0c;你更倾向于哪一种&#xff1f; 你可以从以下几个维度谈谈你对前端开发和后端开发的看法。此为内容创作模板&#xff0c;在发布之前请将不必要的内容删除 一、引言 提示&#xff1a;可对前端开发和后端开发进行简要介绍并提出…...

SpringBoot集成MyBatis-Plus实现增删改查

背景 因为学习工具的时候经常需要用到jar包&#xff0c;需要增删查改接口&#xff0c;所以参考文章实现了基于mybatis-plus的增删查改接口。 参考文章&#xff1a;第二十二节:SpringBoot集成MyBatis-Plus实现增删改查 原文中的git地址不存在&#xff0c;本文内容是原文代码修…...

基于STM32设计的智能水产养殖系统(华为云IOT)

一、设计简述 基于STM32设计的智能水产养殖监测系统 1.1 项目背景 随着经济的发展和人口的增长,对水产养殖的需求不断增加。然而,传统的水产养殖方式存在一系列问题,如水质污染、鱼病爆发等。因此,智能化水产养殖技术成为当前热门研究领域。其中,基于物联网技术的智能水产…...

UE5 BaseEditorSettings.ini加载原理与配置生效机制

1. 为什么你改了BaseEditorSettings.ini却没生效&#xff1f;——从UE5编辑器启动流程讲起很多人在UE5项目里折腾半天&#xff0c;把BaseEditorSettings.ini文件翻来覆去改了十几遍&#xff0c;重启编辑器后发现&#xff1a;缩放比例还是不对、网格间距没变、甚至“启用实时预览…...

GEMM内核与MHA中的寄存器分配优化策略

1. GEMM内核与寄存器分配基础解析通用矩阵乘法&#xff08;GEMM&#xff09;作为深度学习计算的核心算子&#xff0c;其性能表现直接决定了神经网络训练和推理的效率。在硬件层面&#xff0c;寄存器分配的优劣往往能带来数倍的性能差异。我们以典型的GEMM运算C αAB βC为例&…...

零基础轻松拿捏!魔珐星云青少年健康运动教学数字人搭建全流程指南

大家好&#xff01;本次给大家分享一款面向青少年体育教育的AI创意实践项目——青少年健康运动教学智能数字交互系统。本项目聚焦青少年体质健康痛点&#xff0c;围绕体育教学智能化升级需求&#xff0c;打造集健康知识教学、运动动作陪练、健康知识考核、运动能力评测于一体的…...

适合地产人用的中介房源管理系统

在房产经纪行业&#xff0c;房源管理与客源管理是经纪人日常工作的核心&#xff0c;直接影响业务效率与成交转化。选择一套适配行业需求的中介房源管理系统&#xff0c;能帮助中介团队规范流程、降低运营成本、大幅提升业绩。今天我们以客观视角&#xff0c;详细解析全房源系统…...

BurpSuite 2025插件开发JDK版本兼容性实战指南

1. 为什么BurpSuite插件开发环境总在JDK版本上翻车&#xff1f;你是不是也经历过&#xff1a;下载好BurpSuite最新版2025.4&#xff0c;兴冲冲打开插件开发文档&#xff0c;照着官方示例写完第一个HelloWorld插件&#xff0c;一编译——java.lang.UnsupportedClassVersionError…...

2026上半年数据库系统工程师(软考)上午题回忆与解析(非标答版)

本文为考后回忆整理&#xff0c;非官方标准答案&#xff0c;旨在为考后对答案及下半年备考的同学提供参考。题目顺序和表述可能与原卷有出入&#xff0c;欢迎在评论区指正、补充。&#x1f4ca; 整体考情分析 刚结束的2026年上半年数据库系统工程师考试&#xff0c;上午题的风格…...

为什么软件开发偏爱 Linux?深度剖析 Linux 相较于 Windows 的核心优势

引言 在软件开发的世界里&#xff0c;一个有趣的现象是&#xff1a;无论是大型互联网公司的服务器集群&#xff0c;还是资深程序员的个人开发机&#xff0c;Linux 操作系统的身影无处不在。与之形成鲜明对比的是&#xff0c;尽管 Windows 在个人消费市场占据绝对主导地位&…...

别再手动测模型了!用Simulink Test Manager实现自动化测试(附Excel表格配置详解)

从手动测试到智能验证&#xff1a;Simulink Test Manager全流程自动化实战指南 在模型开发的迭代过程中&#xff0c;工程师们常常陷入"修改-测试-记录"的循环泥潭。每次参数调整后&#xff0c;手动运行模型、记录数据、比对结果不仅消耗大量时间&#xff0c;更可能因…...

3步快速解密中兴光猫配置:ZET工具终极实战指南

3步快速解密中兴光猫配置&#xff1a;ZET工具终极实战指南 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 中兴光猫配置解密工具是每个网络管理员必备的神器&#xff01;Z…...

嵌入式Linux驱动开发 —— 从DTS到代码的桥梁与简单OF系列API(3)

接前一篇文章&#xff1a;嵌入式Linux驱动开发 —— 从DTS到代码的桥梁与简单OF系列API&#xff08;2&#xff09; 节点查找 API&#xff1a;如何在设备树中定位目标节点 有了数据结构基础&#xff0c;现在我们可以开始讲具体的API了。第一步是找到你要操作的节点。就像你想操…...