链表CPP简单示例
链表创建
链表打印全部内容
获取链表长度
链表根据指定位置添加元素
链表根据指定位置删除元素
#include <iostream>
using namespace std;// 1、创建结构体// typedef 经常在结构中使用 typedef 别名
typedef struct node {int date;struct node* next; // 必须要自己用自己,否则会陷入循环中
}Node; // 结构类型别名// 2、创建链表 创建长度为n的链表Node* Nodeinit(int n) {// 创建 头节点Node* head = new Node;head->date = 0;head->next = NULL;// 创建 暂存节点Node* per = head;for (int i = 0; i < n; i++) {Node* p = new Node; // 创建 一个节点p->next = NULL; // 指向下一个点, 先设空p->date = 0; // 赋值 0per->next = p; // 将 暂存节点 链接起来 这样暂存节点的下一个就是新的暂存节点,进行循环per = p; // 将里面的值也赋过去}return head;}// 3、查看链表所有数据
void NodeDisplay(Node *tou) {Node* p = tou->next;while (p != NULL) {std::cout << p->date << " -> ";p = p->next;}std::cout << "NULL" << std::endl;
}// 4、获取链表长度
int Nodelen(Node *node) {Node* p = node->next;int i = 0;while (p != NULL) {p = p->next;i++;}std::cout << "链表长度:" << i << std::endl;return i;}// 指定位置插入(替换)链表数据 (头节点、插入位置、插入数据)
void NodeInsert(Node* head, int index, int date) {int n = Nodelen(head); // 链表长度// 超出范围则报错if (index < 0 || index > n) {throw "index error"; //如果插入位置超出链表长度抛出异常//std::cout << "插入位置有误:"<< index << std::endl;}//临时存放节点Node* per = head;for (int i = 0; i < index; i++){// 循环next到index位置per = per->next;}Node* Node1 = new Node;// 新节点 输入数据Node1->date = date;// 新节点指向 要使用 原节点的指向Node1->next = per->next;// 原节点指向新节点 per->next = Node1;std::cout << "插入成功:" << index << std::endl;
}// 指定位置删除链表中的元素void delNode(Node* head, int index) {int n = Nodelen(head); // 链表长度// 超出范围则报错if (index < 0 || index > n) {throw "index error"; //如果插入位置超出链表长度抛出异常//std::cout << "插入位置有误:"<< index << std::endl;}//临时存放节点Node* per = head;for (int i = 0; i < index; i++) {per->next;}// 将要删除的节点拿出来Node* p = per->next;// 接入下下个节点per->next = per->next->next;std::cout << "删除成功, 位置:" << index << std::endl;// 删除拿出来的节点delete p;
}
// 查链表是否存在某元素// 删除链表指定元素// 演示
int main(int argc, char** argv) {// 初始化 链表Node* MainHead = Nodeinit(5);// 打印链表NodeDisplay(MainHead);// 获取链表长度Nodelen(MainHead);// 插入替换某节点(链表首地址, 链表位置, 插入内容)NodeInsert(MainHead, 3, 1);// 打印链表NodeDisplay(MainHead);// 删除指定位置的链表元素delNode(MainHead, 4);// 打印链表NodeDisplay(MainHead);return 0;
}相关文章:
链表CPP简单示例
链表创建 链表打印全部内容 获取链表长度 链表根据指定位置添加元素 链表根据指定位置删除元素 #include <iostream> using namespace std;// 1、创建结构体// typedef 经常在结构中使用 typedef 别名 typedef struct node {int date;struct node* next; // 必须要自己…...
智能EDM邮件群发工具哪个好?
企业之间的竞争日益激烈,如何高效、精准地触达目标客户,成为每个市场战略家必须面对的挑战。在此背景下,云衔科技凭借其前沿的AI技术和深厚的行业洞察,匠心推出了全方位一站式智能EDM邮件营销服务平台,重新定义了邮件营…...
低代码与AI技术发展:开启数字化新时代
随着数字化转型的深入推进,低代码和AI技术逐渐成为各行各业关注的焦点。这两种技术的发展不仅改变了传统开发模式,还为企业创新和产业升级提供了新契机。本文将探讨这两种技术在实际应用中的相互促进作用,以及它们为我国经济社会发展带来的机…...
风电功率预测 | 基于遗传算法优化BP神经网络实现风电功率预测(附matlab完整源码)
风电功率预测 风电功率预测 | 基于遗传算法优化BP神经网络实现风电功率预测(附matlab完整源码)完整代码风电功率预测 | 基于遗传算法优化BP神经网络实现风电功率预测(附matlab完整源码) 基于遗传算法优化BP神经网络是一种常见的方法,用于改进BP神经网络在风电功率预测中的性…...
uni-segmented-control插件使用
dcloud插件市场 前端/uniapp 1.HBuildX打开目标项目 2.进入dcloud插件市场下载目标插件 3.看到如下提示(已经可以在目标项目中使用插件啦) 4.项目正式使用...
被动防护不如主动出击
自网络的诞生以来,攻击威胁事件不断涌现,网络攻防对抗已然成为信息时代背景下的一场无硝烟的战争。然而,传统的网络防御技术,如防火墙和入侵检测技术,往往局限于一种被动的敌暗我明的防御模式,面对攻击者无…...
ollama离线部署llama3(window系统)
首先介绍下ollama是什么?Ollama是一个开源的大型语言模型服务工具,旨在为用户提供本地化的运行环境,满足个性化的需求。具体来说,Ollama是一个功能强大的开源框架,可以简化在Docker容器中部署和管理大型语言模型&a…...
基于Django实现的(bert)深度学习文本相似度检测系统设计
基于Django实现的(bert)深度学习文本相似度检测系统设计 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat、Maven 系统功能实现 登录页面 注册页面:用户账号,密码…...
数据中心网络随想-电路交换
数据中心网络扩容并不容易,涉及设备上架,切换等又硬又大的动作,期间对所有应用都会产生影响,所以理论上 “加钱加硬件” 这种看起来很简单的事实际上真不如 “写一个随时部署升级的端到端拥塞控制算法” 更容易实施。 傍晚绕小区…...
并行执行线程资源管理方式——《OceanBase 并行执行》系列 3
在某些特定场景下,由于需要等待线程资源,并行查询会遇到排队等待的情况。本篇博客将介绍如何管理并行执行线程资源,以解决这种问题。 《OceanBase并行执行》系列的内容分为七篇博客,本篇是其中的第三篇。 一并行执行概念二如何手…...
数据库系统概论(个人笔记)(第二部分)
数据库系统概论(个人笔记) 文章目录 数据库系统概论(个人笔记)2、关系模型简介2.1 关系数据库的结构2.2 数据库模式2.3 键2.4 模式图2.5 关系查询语言2.6 关系代数 2、关系模型简介 2.1 关系数据库的结构 Structure of Relational…...
WebView基础知识以及Androidx-WebKit的使用
文章目录 摘要WebView基础一、启动调整模式二、WebChromeClient三、WebViewClient四、WebSettings五、WebView和Native交互 Androidx-WebKit一、启动安全浏览服务二、设置代理三、安全的 WebView 和 Native 通信支持四、文件传递五、深色主题的支持六、JavaScript and WebAssem…...
解锁AI写作新纪元的文心一言指令
解锁AI写作新纪元的文心一言指令 在人工智能(AI)飞速发展的今天,自然语言处理(NLP)技术取得了显著的进步。文心一言,作为NLP领域的一颗璀璨明星,以其强大的文本生成和指令理解能力,为…...
前端学习——工具的使用
文章目录 1. 引入一个组件需要什么步骤2. 监听变量的修改3. async与await实现异步调用4. position: relative5. 定时执行方法 1. 引入一个组件需要什么步骤 引入一个组件,一定不要加{} (对)import editForm from “./component/editForm”; …...
图的拓扑序列(BFS_如果节点带着入度信息)
way:找入度为0的节点删除,减少其他节点的入度,继续找入度为0的节点,直到删除完所有的图节点。(遍历node的neighbors就能得到neighbors的入度信息) #include<iostream> #include<vector> #incl…...
Linux常用指令集合
ls显示目录文件 选项: -a 所有文件(all所有) -l 详细信息(Information信息)(自动包含-1) 所以常用 ll -1 一行只输出一个文件。 -R 列出所有子目录下的文件。…...
前端 JS 经典:为什么需要模块化
首先,自我评定一下,一个 js 文件,各位兄弟,最多能掌控多少行,什么意思呢,就是说,一个 js 文件在多少行之内,你是可以清楚的知道这个 JS 实现了哪些业务逻辑,并对这些业务…...
MySQL:某字段追加随机数
在MySQL中,你可以使用UPDATE语句结合随机函数RAND()来为某个字段追加随机数。以下是一个示例,假设我们有一个表my_table,其中有一个字段my_field,我们想要为这个字段追加一个介于1到100之间的随机数: UPDATE my_table…...
研发管理-选择研发管理系统-研发管理系统哪个好
选择研发管理系统-研发管理系统哪个好 选择研发管理系统时,并没有一个绝对的“最好”的系统,因为每个企业的需求和情况都是独特的。然而,我可以向您介绍一些在市场上广受欢迎且功能强大的研发管理系统,供您参考: 1、彩…...
学校NTP时钟系统(时间同步系统)方案助力建设智慧校园
学校NTP时钟系统(时间同步系统)方案助力建设智慧校园 学校NTP时钟系统(时间同步系统)方案助力建设智慧校园 建设智慧校园也意味着校内网络设备和服务器剧增,如何保障智慧校园内各数字系统时序一致、维稳运行成为一大难…...
网易云音乐美化插件全攻略:从核心价值到深度定制的个性化指南
网易云音乐美化插件全攻略:从核心价值到深度定制的个性化指南 【免费下载链接】refined-now-playing-netease 🎵 网易云音乐沉浸式播放界面、歌词动画 - BetterNCM 插件 项目地址: https://gitcode.com/gh_mirrors/re/refined-now-playing-netease …...
千问3.5-2B网页版深度解析:前端上传逻辑、后端推理链路、JSON返回结构
千问3.5-2B网页版深度解析:前端上传逻辑、后端推理链路、JSON返回结构 1. 平台概述 千问3.5-2B是Qwen系列中的轻量级视觉语言模型,专为图片理解与文本生成任务优化设计。这个开箱即用的解决方案将复杂的AI能力封装成简单的网页交互,用户无需…...
Firmwork-Common:嵌入式跨平台基础库设计与实践
1. 项目概述Firmwork-Common 是 Firmwork 嵌入式固件生态体系中的全局基础库(Global Common Library),其核心定位并非提供特定外设驱动或协议栈,而是为整个 Firmwork 生态下的所有模块、中间件及应用层代码提供统一、稳定、可移植…...
如何分析和改善网站的SEO效果
如何分析和改善网站的SEO效果 在当今互联网时代,一个优秀的网站不仅需要内容丰富,还需要有良好的搜索引擎优化(SEO)效果。SEO是提升网站在搜索引擎中排名的关键手段,本文将详细探讨如何分析和改善网站的SEO效果&#…...
突破文档获取限制:kill-doc开源工具全方位解析
突破文档获取限制:kill-doc开源工具全方位解析 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…...
关于初次学习的c语言心得
我是一名大一下的学生,双非二本,因为一些原因休学了两年,现在正在努力学习c语言目标成为公司里面所谓的精通编程,学习c语言的过程每天坚持三小时以上,希望能进入像京东,华为等公司,我也想挣钱买…...
如何高效实现金融核心系统客户证件影像预览?kkFileView完整解决方案
如何高效实现金融核心系统客户证件影像预览?kkFileView完整解决方案 【免费下载链接】kkFileView Universal File Online Preview Project based on Spring-Boot 项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView 在金融行业日常运营中…...
北大“炒股挣钱”课为什么被学生称为“最硬核的风险教育”?它真正教的不是怎么赚钱,而是普通人如何在股市里活下来
一位北大非金融专业的学生上完这堂课后,感慨:“这可能是北大最实用的一门金融课,却让我更坚定地远离个股投机。” 课名叫《炒股挣钱》,可通篇下来,老师赵克常反复强调的却是:“我真正想讲的不是如何暴富&am…...
Phi-4-reasoning-vision-15B部署教程:内网验证+外网网关调试全流程避坑指南
Phi-4-reasoning-vision-15B部署教程:内网验证外网网关调试全流程避坑指南 1. 模型介绍 Phi-4-reasoning-vision-15B是微软推出的多模态视觉推理模型,具备强大的图像理解和分析能力。这个模型特别适合需要处理复杂视觉任务的场景,比如文档O…...
Qwen3-0.6B入门实战:从镜像启动到智能问答,完整流程解析
Qwen3-0.6B入门实战:从镜像启动到智能问答,完整流程解析 1. Qwen3-0.6B简介 Qwen3(千问3)是阿里巴巴集团开源的新一代通义千问大语言模型系列,涵盖6款密集模型和2款混合专家(MoE)架构模型。Qw…...
