#include<iostream>
using namespace std;
//声明链表结点的结构体
typedef struct LinkNode
{
int data;
struct LinkNode *next;
}LinkNode, *Linklist;
//初始化链表
const bool Init_List(Linklist &l) throw(bool)
{
//为头结点分配内存
l = (LinkNode*)malloc(sizeof(LinkNode));
//l = new LinkNode;
//如果内存不足,分配失败( malloc 和 new 分配失败返回 NULL )
if (l == nullptr)
{
return false;
//throw(false);
}
//头结点的指向为空
l->next = nullptr;
return true;
}
//(按位序插入,带头结点)
bool List_Insert(Linklist &l, int i, int e)
{
//从 1 开始,插入位置小于 1 时:
if (i < 1)
{
return false;
}
//定义一个指针 now 指向当前扫描的结点,初始化指向头结点(第 0 个结点)
LinkNode *now = l;
//定义一个整型变量 j 表示 now 指向的是第几个结点,初始化时指向的是头结点
int j = 0;
//遍历要插入的位置
while (now != nullptr && j < i - 1)
{
//确保 now 指针的更新
now = now->next;
j++;
}
//now 指向 null 的时候
if (now == nullptr)
{
return false;
}
//为将要插入的结点分配内存空间
LinkNode *insert = new LinkNode;
//分配失败时:
if (insert == nullptr)
{
return false;
}
//分配成功时:
//放入要插入的数据
insert->data = e;
//先更改 后继 再更改 前驱
insert->next = now->next;
now->next = insert;
//插入成功
return true;
}
//main函数
int main()
{
Linklist l;
Init_List(l);
//try
//{
// Init_List(l);
//}
//catch(bool)
//{
// cerr << "分配失败" << endl;
//}
List_Insert(l, 1, 1);
system("pause");
return 0;
}
相关推荐
c++多线程(1)------创建和管理线程td::thread
std::thread 是 C++11 标准库中用于创建和管理线程的核心类,定义在 <thread> 头文件中。它使得多线程编程变得简单、类型安全且跨平台。
链表 C语言实现
链表的一些主要操作,C语言实现
Allan方差读图分析IMU误差指标
Allan方差标定IMU参数实测分析
数据结构-单链表详解
#include <stdio.h> #include <malloc.h> /** * 定义结点类型结构体,有一个data域和一个next域 */ typedef struct LNode { int data; struct LNode* next; }LNode, * LinkList; /** * 初始化,生成带有头结点的单链表 * @param L ...
【电磁场与电磁波课程设计】基于HFSS的双频微带天线仿真及设计
第五代移动通信技术(5G)的商用已经近在眼前,作为移动通信中最为重要的功能组件,面向5G通信应用的手机天线与基站天线的技术研究与设计成为近年来的热点。随着移动通信中“跳频”“扩频”等通信技术发展,为了满足与多个终端的通信要求,实现多系统共用和收发共用等功能,这就要求天线在不同频段下工作。根据国家工信部的最新规定,5G移动通信的中频段被划定在3.3 GHz-3.5 GHz及4.8 GHz-5.0 GH,面向5G移动通信的天线应具有高增益、小型化、宽频段及高隔离度等技术特征,以满足5G通信的高传输速率、波束智能
一文入门BMS(电池管理系统)
本文章是基于曾师兄的文稿《具有组网扩展功能的新能源汽车电池管理系统》而写的文章。该文章主要是对BMS(Battery Management System,电池管理系统)做一些简要的介绍,借此助各位也助我入门BMS。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。
单链表的介绍
关于单链表的·综合实现
8年ES运维经验整理出的Elasticsearch运维手册(超实用)
k1 : 控制非线性词频率归一化(饱和),Elasticsearch中默认值为1.2。用人能看懂的话说就是词语在文档中出现的次数对于得分的重要性。例如说我觉得在某些场景,一个搜索词在文档中出现越多则越接近我希望搜索的内容,就可以将这个参数调大一点。b :控制文档长度对于分数的惩罚力度。变量b处于分母上,它乘以刚刚讨论过的字段长度的比值,Elasticsearch中的b 默认值为0.75。如果b较大,则文档长度相对于平均长度的影响更大。
C语言/数据结构·单链表
同样这个代码 是根据我对书上代码的理解写的 对书上一些没必要的步骤进行了删减 #include<stdio.h> #include<stdlib.h> struct link { int data; struct link *next; }; struct link *Append(struct link *head) { struct link *...
ESP32设备驱动-TB6612FNG直流电机驱动
TB6612FNG 是一款出色的双电机驱动器,非常适合将两个小型直流电机(例如微型金属齿轮电机)连接到微控制器,它还可以用于控制单个双极步进电机。 基于 MOSFET 的 H 桥比 L298N 和 Sanyo 的 LB1836M 等旧式驱动器中使用的基于 BJT 的 H 桥效率高得多,后者允许将更多电流输送到电机,而从逻辑电源汲取的电流更少 (对于真正低电压的应用,LB1836 仍然具有 TB6612 的优势)。
博途PLC模糊PID控制(附SCL完整源代码)
操作人员根据对象的当前状态和以往的控制经验,用手动控制的方法给出适当的控制量,对被控对象进行控制。用电脑模拟操作人员手动控制的经验,对被控对象进行控制。用模糊数学的知识模仿人脑的思维方式,对模糊现象进行识别和判决,给出精确的控制量,对被控对象进行控制。与经典控制理论和现代控制理论相比,模糊控制的特点是不需要建立对象的精确模型。根据操作人员手动控制的经验,总结的完整控制规则,在根据系统当前的运行状态,经过模糊推理,模糊判决等运算,求出控制量,实现对被控对象的控制。......
数据结构线性表之单链表(C语言)
数据结构线性表之单链表(C语言) C语言中链表是精华所在,最近遇到两道个人感觉不错的单链表的题,由于目前只会C,所以只能用C来做。 先放题: 1. 已知一个带头结点的单链表 L,设计算法实现:以表中第一个元素作为标准, 将单链表中所有值小于第一个元素的结点均放在第一个元素结点之前,所有值大 于第一个元素的结点均放在第一个元素结点之后(请使用函数设计)。 // 单链表中节点的结构体类型定义 … typedef struct LNode { int data; // 数据 ... struct LNode
Higress 入门:初探阿里云原生 AI 网关
Higress 是一款由阿里巴巴推出的云原生 API 网关,其内核基于 Istio 和 Envoy。与传统 API 网关不同,它深度聚焦于 AI 场景,支持国内外众多主流模型供应商,如 OpenAI、百度文心一言等,还兼容基于 vllm/ollama 等自建的 DeepSeek 模型,能够满足不同类型企业对 AI 能力集成与管理的需求。Higress 作为一款功能强大的云原生 API 网关,在 AI 时代展现出独特的优势。
浅析那些初学者头疼的数据结构——链表
浅析那些另初学者头疼的数据结构——链表 前情摘要: 本文主要介绍基础数据结构链表的基本概念以及与链表相关的一些简单的操作,如链表的反转,合并两个有序链表,求链表的中间节点,删除链表的倒数第K个节点。 对读者的要求: 1、不要看到本文写的是链表,就觉得很难,就直接退出,花一点点时间,不敢说让你上来就搞懂链表,但至少给你一种思路,就像当初在黑暗中的我看到那微弱的亮光,因为我就是从初学者刚刚过来的,所以还记得初学者那些奇奇怪怪的问题。 2、本文基于java语言的链表,但是其实无论哪一种语言的链表都是大同小异的,只
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
【Java数据结构】链表详解,初学者必看!✨
本文介绍了Java中链表数据结构的基本概念、类型及其核心操作。链表由非连续内存的节点组成,每个节点包含数据域和指针域,主要分为单链表、双链表、循环链表等类型。与数组相比,链表在插入/删除操作上更高效(O(1)),但随机访问效率较低(O(n))。重点讲解了链表节点设计、边界条件处理、遍历技巧以及常见算法问题(如反转链表、检测环等),并提供了完整的单链表实现代码,包括添加/删除节点等核心操作。通过学习,读者可以掌握链表的基本原理和实际应用。
华为的C语言编程规范.pdf
华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。
数据结构——初学链表
一、链表的概念 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 链表的原理示意图 我们先创建有一个空链表 typedef struct _st_node { int ...
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
初学数据结构之单链表(C语言)
指定一个位置pos,我们要把一个新节点插入到pos之前只需要让pos前的节点的next指针指向新节点,新节点的next指针指向pos即可,所以我们需要找到pos前一个节点。该函数的参数是指向链表头节点的指针,大家可能会对这个循环比较疑惑,我来简单解释一下,while(pcur)表示循环的结束条件是pcur==NILL,pcur==pcur->next表示跳到下一个节点,相当于平时我们用的 i++。相较于尾删,头删的操作要简单很多,不过也不是只要把头节点free()掉就行的,我们还需要改变指向头节点的指针。
初学数据结构——单链表
看了一天的数据结构。突然觉得自己太迟没有看到这本书。如果不是要学习并查集,估计我这辈子可能不会去看数据结构这本书。因为单从书名来看,我就觉得是非常深奥的知识,但是能把深奥的知识学懂一点点,也是很快乐的事。 今天自己写了单链表,虽然和书上的大有不同,但是实现的意义是相同的。 (>_<觉得自己好蠢,写了一下午才写出来。笨死了!!) 1 #include &...
初学数据结构:LinkedList与链表
本文介绍了初学LinkedList与链表的相关知识点,包括模拟实现链表、链表的习题等
静态链表(C++实现)——基于数据结构(沈俊版)(初学者食用)
静态链表(C++实现)——基于数据结构(沈俊版) 初学数据结构,不喜勿喷。欢迎大佬们指正! 静态链表是利用数组来模拟存储空间来实现链表的,如果为数组中每一个元素附加一个链接指针(数组下标),就形成静态链表结构。它允许不改变各元素的物理位置,只要重新链接就能改变这些元素的逻辑顺序。由于它是利用数组定义的,在整个运算过程中存储空间的大小不会发生改变,因此称为静态链表。 静态链表(C++)源代码 // ...
【初学数据结构】单链表
数据结构之单链表
数据结构初学习、单向链表
【初学数据结构】双向链表
前面实现了单链表 函数实现部分 总结 单链表与双向链表 虽说都是链表,在结构上双向链表看起来比单链表复杂了,但是实现起来它比单链表方便多了。
java链表赋值给另一个链表_浅析那些另初学者头疼的数据结构——链表
浅析那些另初学者头疼的数据结构——链表前情摘要:本文主要介绍基础数据结构链表的基本概念以及与链表相关的一些简单的操作,如链表的反转,合并两个有序链表,求链表的中间节点,删除链表的倒数第K个节点。对读者的要求:1、不要看到本文写的是链表,就觉得很难,就直接退出,花一点点时间,不敢说让你上来就搞懂链表,但至少给你一种思路,就像当初在黑暗中的我看到那微弱的亮光,因为我就是从初学者刚刚过来的,所以还记得初...
数据结构篇:初学者关于链表的结构的理解的指导
(一)关于对节点的定义,其实这是一个结构体(不会的可以在百度查查结构体定义),包含数据域data与指针域pNext,如下: typedef struct node{ int data; struct node* pNext; }NODE,*pNode; 好多初学者对于NODE与*pNext不理解,其实就是给结构体再命名而已,NODE等价于struct node,,*pNode等...
【初学数据结构】双链表
初学数据结构之单链表
648



被折叠的 条评论
为什么被折叠?



