【C++】链表学习

C语言实验——各位数字之和排序 C语言实验——各位数字之和排序Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description给定n个正整数,根据各位数字之和从小到大进行排序。 Input输入数据有多组,每组数据占一行,每行的第一个数正整数n,表示整数个数,后面... 阅读详情
#include "stdafx.h"
#include <iostream>
using namespace std;

typedef struct Node
{
    int nVal;
    Node *pNext;
}Link,*pLink;

Link * CreateLink(int arr[], int n)
{
    if (0 == n)
    {
        return NULL;
    }

    Link *pNew = new Link;
    pNew->nVal = 0;
    pNew->pNext = NULL;

    Link *pRet = pNew;
    for (int i=0; i<n; i++)
    {
        Node *p = new Node;
        p->nVal = arr[i];
        p->pNext = NULL;
        pNew->pNext = p;
        pNew = pNew->pNext;
    }
    return pRet->pNext;
}
void PrintLink(Link *pNew)
{
    if (pNew == NULL)
    {
        cout<<"链表为空!"<<endl;
        return;
    }
    Link *p = pNew;
    while (p != NULL)
    {
        cout<<p->nVal;
        p = p->pNext;
        if (p != NULL)
        {
            cout<<"->";
        }
        else
        {
            cout<<endl;
        }
    }
}
void FreeLink(Link *&pNew)
{
    Node *p = NULL;
    while (pNew)
    {
        p = pNew->pNext;
        delete pNew;
        pNew = p;
    }
    pNew = NULL;
}
void DeleteValFromLink(Link *&pNew,int nVal)
{
    Node head;
    head.nVal = -1;
    head.pNext = pNew;

    Node *pHead = &head;
    Node *pCur = NULL;
    while (pHead->pNext != NULL)
    {
        pCur = pHead->pNext;
        if (pHead->pNext->nVal == nVal)
        {
            pHead->pNext = pHead->pNext->pNext;
            delete pCur;
            pCur = NULL;
        }
        else
        {
            pHead = pHead->pNext;
        }
    }
    pNew = head.pNext;
}
void ModifyValFromLink(Link *&pNew,int nPos,int nVal)
{
    if (pNew == NULL)
    {
        return;
    }

    Node head;
    head.nVal = -1;
    head.pNext = pNew;

    int i = 0;
    Node *pHead = &head;
    while (pHead->pNext != NULL)
    {
        if (nPos == ++i)
        {
            pHead->pNext->nVal = nVal;
            break;
        }
        pHead = pHead->pNext;
    }
    pNew = head.pNext;
}
void InsertNodeToLink(Link *&pNew, int nPos,int nVal)
{
    Node *insertNode  = new Node;
    insertNode->nVal = nVal;
    insertNode->pNext = NULL;

    Node head;
    head.nVal = -1;
    head.pNext = pNew;

    int i = 0;
    Node *pHead = &head;
    while (pHead->pNext != NULL)
    {
        if (nPos == ++i)
        {
            insertNode->pNext = pHead->pNext;
            pHead->pNext = insertNode;
            break;
        }
        pHead = pHead->pNext;
    }
    pNew = head.pNext;
}
void main()
{
    int arr[] = {1,2,2,1,4,5};
    Link *pNew = CreateLink(arr,sizeof(arr)/sizeof(arr[0]));
    PrintLink(pNew);
    //     DeleteValFromLink(pNew,2);
    //     DeleteValFromLink(pNew,1);
    //     PrintLink(pNew);
    //InsertNodeToLink(pNew,4,3);
    //PrintLink(pNew);
    //ModifyValFromLink(pNew,5,10);
    //PrintLink(pNew);
}

从入门到精通:dirmap 高级 Web 目录扫描实战指南 本文提供了一份从环境搭建到高级配置的dirmap Web目录扫描实战指南。详细解析了工具安装、核心配置文件dirmap.conf的深度调优,包括递归扫描、四种扫描模式(字典、爆破、爬虫、Fuzz)的实战应用,并演示了分阶段资产发现的完整工作流程,帮助安全人员高效发现隐藏目录与敏感文件。 阅读详情

相关推荐

SCU【C】程序设计基础期末安全项目lab2-Deadbeef-writeup(附题目&源码)

项目名称(本质:栈溢出攻击)【源码在文首】和lab1一样,此题又是美国卡耐基梅隆大学的平时作业哈哈哈! 项目要求是把栈溢出,强行更改函数返回值,输出0xdeadbeef。

2301_79586491的博客 1544

(摘)c++数据结构---单链表的节点类和单链表的查找---(凌风)

3.2.2 单链表的节点类(程序3-5和程序3-6)有两个变量:一个指向下一个节点的指针和一个指向Ting对象的指针。节点类必须可以修改它指向它指向下一个节点的指针(setNext),并且取得该指针的值(getNext).此外,它还必须能够取得它所指向指针对象的地址(getThing). [程序3-5]单链表中节点类的声明 #ifndef NODE #define NODE #in

zy799894671的专栏 1149

Ubuntu 20.04下IgH EtherCAT主站部署实战

本文详细介绍了在Ubuntu 20.04系统上部署IgH EtherCAT主站的完整流程,包括环境准备、源码编译、内核模块配置、网络接口设置及实时性优化等关键步骤。通过实战案例和常见问题排查,帮助开发者快速掌握EtherCAT主站部署技巧,提升工业自动化系统的稳定性和实时性。

weixin_30596343的博客 1071

C++链表学习

1、字符串和数组的共同点元素按照一定的顺序来排列,可以通过索引来访问数组中的元素和字符串中的字符。数组的大小通常是固定的,一单分配了内存空间,就难以动态地扩展或缩小。因为元素按照一定的顺序来排列,它们在计算机内存中的存储也是连续的,也就意味着当需要存储一些需要占用空间较大的内容,也只能找一些大块的内存区域,而空间比较小的内存区域就被浪费了,从而导致了内存资源浪费。数组要求所有元素具有相同的数据类型,字符串存储的都是字符,如果需要存储不同类型的数据,数组和字符串就显得无能为力了。

qq_55675294的博客 1056

图像识别火灾检测系统实战:从火焰特征到YOLO部署全解析

计算机视觉技术正深入改变传统消防的感知方式。图像识别火灾检测利用摄像头采集的视频流,通过颜色、动态和形态特征分析,实现早期火情的自动发现与定位。其核心原理在于,火焰在视觉上具有独特的颜色分布、闪烁特性和轮廓变化,借助目标检测模型如YOLO,可在复杂场景中区分真实火焰与干扰物。这项技术广泛应用于仓库、园区、隧道等大空间场所,是智慧消防的重要支撑。本文从火焰视觉特征、数据集构建、模型选型与系统架构设计出发,结合部署实践中的误报与算力优化经验,为开发者提供一套可落地的视频火焰检测方案。

weixin_42533751的博客 245

AWSIM模拟器 新增多相机

本文介绍了基于Unity6引擎对AWSIM自动驾驶模拟器的优化方案,主要针对多相机系统的扩展实现。作者通过修改EgoVehicle.cs和AutowareSimulationDemo.cs核心代码,将原单相机系统升级为5相机配置。关键技术点包括:1)使用List容器管理多个CameraSensor组件;2)完善相机初始化流程;3)配置5个相机UI显示窗口;4)修改ROS话题设置。优化后的系统可支持BEVFusion等多传感器融合算法的测试验证,为Autoware.universe 0.45.0及以上版本提供

W805698955的博客 831

c++基础链表学习

我们需要先找到它,这个方法和前面在末尾插入节点的方法有一点不同,因为我们要删掉最后一个节点,还要释放空间,所以我们需要一个指针指向最后一个节点,还需要一个指针指向它的前一个节点作为新的尾部。如果要插入一个值为a的节点,那么我们首先需要生成一个新节点。首先我们要找到第i个节点,判断第i个节点是否存在。如果链表为空(创建第一个节点的时候)3)把新节点插入到第i个节点后面。2)删除链表的最后一个节点。1) 将新节点插入到表头。1)删除链表中的第一个节点。2)将新节点插入到表尾。

2503_91635959的博客 447

公开 学生课堂行为数据集 SCB-Dataset: A Dataset for Detecting Student and Teacher Classroom Behavior

公开 学生课堂行为数据集 SCB-Dataset Student Classroom Behavior dataset

CSPhD-winston的博客 1万+

C++学习之动态数组和链表

C++学习之动态数组和链表

qq_27302885的博客 646

YOLOv8改进策略【Neck】| CGA Fusion:内容引导的注意力融合模块,空间权重引导的多模态特征自适应融合

本文记录的是利用CGA Fusion 模块改进 YOLOv8 的多模态融合部分。(Content-Guided Attention Fusion)通过内容引导注意力生成空间权重,引导高低层特征的自适应融合。本文利用模块,通过内容引导注意力生成空间权重,自适应地融合两个模态的特征,在特征融合阶段实现跨模态语义对齐与噪声抑制,增强对不同模态互补特征的利用能力,从而提升模型在多模态场景下的检测鲁棒性与准确性。DEA-Net: Single image dehazing based on detail-enhanc

Limiiiing的博客 282

TDS水质检测传感器原理图设计,已量产(液体传感器)

最近调试了一款针对生活用水、水培系统的 TDS 水质检测模块 —— 毕竟 TDS(总溶解固体)值直接关联水的洁净程度,是这类场景里既实用又易获取的水质指标。下面拆解下这个电路的设计逻辑,说说每个部分是怎么配合实现精准检测的。

不脱发的程序猿 1541

C++算法学习——链表

C++算法专题:链表的学习。同时也有链表面试题中常用的技巧和操作

2401_89119815的博客 1206

《Autosar_BSW高阶配置》总目录_培训教程持续更新中...

目录 一、Autosar COM Module 二、Autosar BswM Module 三、Autosar EcuM Module 四、Autosar DCM Module 五、Autosar DEM Module 六、其它Module陆续推出 欢迎大家订阅《Autosar_BSW高阶配置》专栏(可以理解为是Autosar培训教程),该专栏每周至少更新一篇,一次订阅,不再二次收费,献上常用的案例和配置方法。下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取。 本专栏...

「汽车电子助手」的博客 4万+

c++链表学习

C++链表学习前言创建简单的链表合并两个有序链表总结 前言 最近在学习C++算法与数据结构,利用csdn写一些笔记帮助自己记忆,同时也希望对你们有用。 创建简单的链表 代码如下(示例): struct ListNode { int val; ListNode* next; ListNode(int value, ListNode* next1 = nullptr) //构造函数 { val = value; next = next1; } }; 根据上述代码我们自己定义了一个构造

qq_48176859的博客 284

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C++学习之链表和回调函数

C++学习之链表和回调函数

qq_27302885的博客 808

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C++学习——单链表(一)

本文为《C++学习》的第2篇文章,今天学习单链表。

weixin_72870689的博客 505

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C++学习链表

#include"pch.h" #include<iostream> #include<string> using namespace std; struct Student { int id; char number[16]; char name[16]; Student* next; }; //使用全局变量 S...

weixin_30950887的博客 144

c++之链表的学习

由于之前C语言的时候未打好基础,所以我要重新学习链表了,以下是包含建立头节点,插入排序,打印,删除的函数。

蛤 182

C++个人学习 链表

链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的入口节点称为链表的头结点也就是head。

weixin_57859961的博客 871

[学习笔记]C++实现链表

代码源NEU-数据结构课程 实现题目为函数:getMiddleelement() ,removeDuplicates(), reverse(),pairwiseSwap() #include <iostream> using namespace std; class LinkedList; class ListNode { public: friend class LinkedLi...

山秋菌的博客 361

C++学习日志(链表补充)(2025.03.13)

【代码】C++学习日志(链表补充)(2025.03.13)

lilithhhhhhh的博客 260

C++学习——链表

C++学习——链表 链表是一种物理存储单元上非连续、非顺序的存储结构。链表由一系列结点(链表中每一个元素称为结点)组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 优点: 使用链表结构不需要预先知道数据大小,可以充分利用计算机内存空间,实现灵活的内存动态管理,链表还允许插入和移除表上任意位置上的节点。 缺点: 链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。 分类: 单向链表,双向链表以及循环链表 图示: 以下是一道例题 UVa11

yhchank的博客 449

C++学习链表过程

由于学习邓俊辉《数据结构》中第二章列表里仅仅提到了linked list这一个动态储存结构,并没有对链表进行过多介绍。在跟着《代码随想录》刷题的过程中,第二部分就是链表,因此写这篇链表学习过程为自己做一个刷提前的梳理。ps:之前学过MOCC上的C++课程。 链表 头文件 #include<iostream> #include<cstdlib> using namespace std; 链表的定义 链表分为:单链表、双链表、循环链表,根据字面意思就能理解是什么。 力扣做题

qq_41835314的博客 326

C++学习,链表

高效的插入和删除操作:在特定位置插入或删除节点的时间复杂度通常为 O (1),前提是知道要操作的位置的指针。C++ 中,链表是一种常见的数据结构。链表由一系列节点组成,每个节点包含数据和指向下一个节点的指针。随机访问困难:不像数组可以通过索引直接访问元素,链表需要从头节点开始遍历才能访问特定的节点。额外的内存开销:每个节点都需要额外的指针空间来存储指向下一个节点的引用。动态大小:可以根据需要添加或删除节点,不受固定大小的限制。

五味香的专栏 707

c++学习之链表

一、创建链表、链表的遍历 将三个学生的信息以链表形式表达 #include <iostream> using namespace std; struct student_message //首先定义一个结构体,包含名字、年龄、下一个人的地址 { char name[20];//名字创建一个字符数组来表示 int age; student_message *next;/*创建一个节点类型的指针变量,指针指向下一个节点,下一个节点又 包括年龄姓

kaihonor的博客 389

C++之链表学习

C++链表从0到1

CRYSTAL_FC的博客 225
上一篇: SYSTEMTIME 与 time_t 互转函数
下一篇: HipHop php :PhP 转 C++
Kayee2012
博客等级 码龄18年 27粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值