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

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

image.png

#include <iostream>
using namespace std;
typedef int ElemType;
// 3. 双链表
typedef struct DNode
{ElemType data;struct DNode *prior, *next;
} DNode, *DLinkList;
// 初始化带头结点
bool InitDNodeList(DLinkList &L)
{L = (DNode *)malloc(sizeof(DNode));if (L == NULL){return false;}L->prior = NULL;L->next = NULL;return true;
}
// 在第 i 个位置插入元素 e
bool InsertDNodeList(DLinkList &L, int i, ElemType e)
{DNode *p = L, *s;int j = 0;while (p != NULL && j < i - 1){p = p->next;j++;}if (p == NULL){cout << "插入位置不合法" << endl;return false;}s = (DNode *)malloc(sizeof(DNode));s->data = e;// 判断是否在空表中插入if (p->next == NULL){s->next = NULL;s->prior = p;p->next = s;return true;}else{s->next = p->next;s->prior = p;p->next->prior = s;p->next = s;return true;}
}
// 删除第 i 个元素,并返回元素 e
bool DeleteDNodeList(DLinkList &L, int i, ElemType &e)
{DNode *p = L, *q;int j = 0;while (p != NULL && j < i - 1){p = p->next;j++;}if (p == NULL){cout << "删除位置不合法" << endl;return false;}q = p->next;e = q->data;p->next = q->next;q->next->prior = p;free(q);return true;
}
// 遍历双链表
void TraverseDNodeList(DLinkList L)
{DNode *p = L->next;while (p != NULL){cout << p->data << " ";p = p->next;}cout << endl;
}
int main()
{DLinkList L;ElemType e;InitDNodeList(L);InsertDNodeList(L, 1, 1);InsertDNodeList(L, 2, 2);InsertDNodeList(L, 3, 3);TraverseDNodeList(L);DeleteDNodeList(L, 2, e);cout << "删除元素为:" << e << endl;TraverseDNodeList(L);return 0;
}

image.png

相关文章:

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

#include <iostream> using namespace std; typedef int ElemType; // 3. 双链表 typedef struct DNode {ElemType data;struct DNode *prior, *next; } DNode, *DLinkList; // 初始化带头结点 bool InitDNodeList(DLinkList &L) {L (DNode *)malloc(sizeof(DNode))…...

前端已死?看看我的秋招上岸历程

背景 求职方向&#xff1a;web前端 技术栈&#xff1a;vue2、springboot&#xff08;学校开过课&#xff0c;简单的学习过&#xff09; 实习经历&#xff1a;两段&#xff0c;但都是实训类的&#xff0c;说白了就是类似培训&#xff0c;每次面试官问起时我也会坦诚交代&…...

Flink Flink中的合流

一、Flink中的基本合流操作 在实际应用中&#xff0c;我们经常会遇到来源不同的多条流&#xff0c;需要将它们的数据进行联合处理。所以 Flink 中合流的操作会更加普遍&#xff0c;对应的 API 也更加丰富。 二、联合&#xff08;Union&#xff09; 最简单的合流操作&#xf…...

工业园区重金属废水深度处理工程项目,稳定出水0.1mg/l

随着环保要求不断提高&#xff0c;工业废水处理已成为众多企业的必修课。然而在工业生产中&#xff0c;如何有效处理含有重金属的废水成为了一个关键的挑战。 重金属废水是指含有汞、铅、铜、镉、锌、镍等有毒有害物质的废水&#xff0c;来源于矿山开采、金属冶炼、电镀、印刷线…...

element table滚动条失效

问题描述:给el-table限制高度之后滚动条没了 给看看咋设置的&#xff1a; <el-table:data"tableData"style"width: 100%;"ref"table"max-height"400"sort-change"changeSort">对比了老半天找不出问题&#xff0c;最后…...

代码随想录算法训练营 ---第四十六天

第一题&#xff1a; 简介&#xff1a; 本题的重点在于确定背包容量和物品数量 确定dp数组以及下标的含义 dp[i] : 字符串长度为i的话&#xff0c;dp[i]为true&#xff0c;表示可以拆分为一个或多个在字典中出现的单词。 2.确定递推公式 如果确定dp[j] 是true&#xff0c;且…...

MySQL-02-InnoDB存储引擎

实际的业务系统开发中&#xff0c;使用MySQL数据库&#xff0c;我们使用最多的当然是支持事务并发的InnoDB存储引擎的这种表结构&#xff0c;下面我们介绍下InnoDB存储引擎相关的知识点。 1-Innodb体系架构 InnoDB存储引擎有多个内存块&#xff0c;可以认为这些内存块组成了一…...

Qt路径和Anaconda中QT路径冲突(ubuntu系统)

最近做一个项目需要配置QT库&#xff0c;本项目配置环境如下&#xff1a; Qt version 5 Operating system, version and so on ubuntu 20.04 Description 之前使用过anaconda环境安装过QT5&#xff0c;所以在项目中CMakeLists文件中使用find_package时候&#xff0c;默认使用An…...

vue2.js添加水印

通过canvas生成水印图片 function addWaterMark(str) {let ctx document.createElement("canvas");ctx.width 900;ctx.height 450;ctx.style.display "none";let cans ctx.getContext("2d");cans.rotate((-20 * Math.PI) / 180);cans.font…...

Eureka简单使用做微服务模块之间动态请求

创建一个eureka模块,引入eureka 为启动项加上EnableEurekaServer注解 配置信息 orderService和userService的操作是一样的 这里以orderService为例: 引入eureka客户端 加上 LoadBalanced注解 配置 orderService和userService都配置好了之后 启动 这样我们在http://localhos…...

竞赛选题 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…...

css-tricks网站图例

使用css实现钟表 <template><div><p><small>CSS sin() and cos() does <strong>NOT</strong> work in your browser.</small></p><div class"clock"><div id"app" class"clock-face"…...

Scrapy框架内置管道之图片视频和文件(一篇文章齐全)

1、Scrapy框架初识&#xff08;点击前往查阅&#xff09; 2、Scrapy框架持久化存储&#xff08;点击前往查阅&#xff09; 3、Scrapy框架内置管道 4、Scrapy框架中间件&#xff08;点击前往查阅&#xff09; Scrapy 是一个开源的、基于Python的爬虫框架&#xff0c;它提供了…...

Linux文件与路径

Linux文件与路径 1、文件结构 ​ Windows和Linux文件系统区别 ​ 在windows平台下&#xff0c;打开“此电脑”&#xff0c;我们可以看到盘符分区 ​ 每个驱动器都有自己的根目录结构&#xff0c;这样形成了多个树并列的情形 ​ 但是在 Linux 下&#xff0c;我们是看不到这些…...

【Qt】获取当前系统用户名:9种获取方式

目的 有时&#xff0c;在项目开发中&#xff0c;需要显示或者用到当前系统用户名信息。以下是几种获取系统用户名解决方案&#xff1a; 解决方案 1. 使用QDir::home() #include <QApplication> #include <QDir> #include <QDebug>int main(int argc, cha…...

ECMAScript2023你学习了吗?

一、ES2023 Features 【Array find from last】 从头到尾搜索数组&#xff1a;findLast() 、findLastIndex()【Hashbang Grammar】Hashbang 语法【Symbols as WeakMap keys】Symbol 作为 WeakMap 的键【Change array by copy】通过副本更改数组&#xff1a;toReversed()、toSo…...

【从删库到跑路 | MySQL总结篇】数据库基础(增删改查的基本操作)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 重点放前面&am…...

【JMeter】配置元件

1. 元件的分类 HTTP Request Default 作用&#xff1a; 可以配置成通用的信息&#xff0c;可复用 ​​​​​​​ JDBC Connection Configuration 作用&#xff1a;连接数据库 前提&#xff1a; 下载好对应数据类型的jar包 ​​​​​​​ HTTP Header Manager信息头管理…...

数据采集静态存储SRAM芯片EMI7064

数据采集是利用一种装置&#xff0c;从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛应用在各个领域。比如摄像头&#xff0c;麦克风&#xff0c;都是数据采集工具。 ram工作时可以随时从任何一个指定的地址写入(存入&#xff09;或读出(取出)信息。RAM在计算…...

网络运维与网络安全 学习笔记2023.11.27

网络运维与网络安全 学习笔记 第二十八天 今日目标 OSPF基本原理、OSPF单区域配置、OSPF多区域配置 特殊区域之Stub、特殊区域之NSSA OSPF基本原理 项目背景 随着企业的发展&#xff0c;网络的规模越来越大&#xff0c;网段的数量越来越多&#xff0c;公司内部的路由器的…...

L3GD20陀螺仪驱动开发:寄存器配置、中断与校准实战

1. L3GD20三轴数字陀螺仪驱动库技术解析与工程实践L3GD20是由意法半导体&#xff08;STMicroelectronics&#xff09;推出的低功耗、高精度三轴数字陀螺仪传感器&#xff0c;广泛应用于惯性导航、姿态解算、运动检测及无人机飞控等嵌入式系统中。该器件采用MEMS工艺制造&#x…...

2026 年AI Agent面试题及答案Top30

智能体人工智能正在各行各业迅速普及,许多新兴公司都在寻找这方面的专家。本文收录了一些来自初级和中级职位面试的真实问题,其中一些是我自己设计的,另一些则旨在帮助读者对该领域有一个大致的了解。 请记住,在正式面试中,你可能会被要求先完成一项实践练习。你也可能会被…...

feishu-doc-export:企业文档迁移的智能批量导出解决方案

feishu-doc-export&#xff1a;企业文档迁移的智能批量导出解决方案 【免费下载链接】feishu-doc-export 飞书文档导出服务 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 在数字化转型浪潮中&#xff0c;企业面临文档系统迁移的严峻挑战。feishu-doc…...

掌握AI专著写作技巧,搭配优质工具,轻松搞定专业学术专著

学术专著创作难题与AI工具解决方案 对于很多学者来说&#xff0c;撰写学术专著的最大难题就是“有限的精力”与“无限的需求”之间的矛盾。专著的写作通常需要花费3到5年&#xff0c;甚至更长的时间&#xff0c;而研究人员日常还要面对教学、项目研究、学术交流等多重任务&…...

IDEA开发效率提升:南北阁Nanbeige4.1-3B智能插件开发

IDEA开发效率提升&#xff1a;南北阁Nanbeige4.1-3B智能插件开发 告别重复劳动&#xff0c;让AI成为你的编程搭档 作为一名常年使用IDEA的开发者&#xff0c;我深知编码过程中那些琐碎却耗时的环节&#xff1a;写模板代码、寻找重构机会、分析依赖关系...直到尝试了南北阁Nanbe…...

如何用PRoot在Android上构建完整Linux环境:无需root权限的5个实战技巧

如何用PRoot在Android上构建完整Linux环境&#xff1a;无需root权限的5个实战技巧 【免费下载链接】proot An chroot-like implementation using ptrace. 项目地址: https://gitcode.com/gh_mirrors/pro/proot PRoot是一款革命性的开源工具&#xff0c;它能让你的Androi…...

Pixel Dimension Fissioner 集成Codex实战:代码生成与智能补全应用

Pixel Dimension Fissioner 集成Codex实战&#xff1a;代码生成与智能补全应用 1. 引言&#xff1a;当AI代码助手遇上智能维度解析 最近在开发一个电商后台系统时&#xff0c;我发现自己每天要写大量重复的CRUD代码。更头疼的是&#xff0c;每次修改数据库字段后&#xff0c;…...

告别论文焦虑!Paperxie 智能写作:本科生毕业论文的「通关神器」

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/科研绘图https://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 一、 本科生的论文困局&#xff1a;你是不是也卡在这些环节&#xff1f; 提起本科毕业论文&#xff0c;不少同…...

基于语义与频域特征的AI生成图像检测系统设计与实现(附完整工程)

一、背景与问题 随着扩散模型&#xff08;Diffusion Models&#xff09;和生成对抗网络&#xff08;GAN&#xff09;的发展&#xff0c;AI生成图像的真实性不断提升&#xff0c;传统基于视觉经验的判别方式已难以有效区分真实图像与生成图像。 在实际应用场景中&#xff0c;例…...

Unlock Music音乐解锁工具:打破音乐平台枷锁的终极解决方案

Unlock Music音乐解锁工具&#xff1a;打破音乐平台枷锁的终极解决方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: …...