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

C++数据结构

单向链表

//
// Created by 19342 on 2024/9/14.
//
#include <iostream>
using namespace std;// 定义链表节点
struct Node {int data; // 节点存储的数据Node* next; // 指向下一个节点的指针
};// 初始化链表
Node* initList() {return nullptr;
}// 在链表末尾添加一个新节点
void append(Node*& head, int value) {Node* newNode = new Node();newNode->data = value;newNode->next = nullptr;if (head == nullptr) { // 如果链表为空head = newNode;} else {Node* temp = head;while (temp->next != nullptr) { // 移动到链表的最后一个节点temp = temp->next;}temp->next = newNode; // 将新节点附加到最后}
}// 打印链表的所有元素
void printList(const Node* head) {const Node* temp = head;while (temp != nullptr) {cout << temp->data << " ";temp = temp->next;}cout << endl;
}int main() {Node* head = initList(); // 创建空链表// 向链表中添加一些元素append(head, 1);append(head, 2);append(head, 3);// 打印链表printList(head); // 输出应该是: 1 2 3// 清理内存while (head != nullptr) {Node* temp = head;head = head->next;delete temp; // 释放每个节点占用的内存}return 0;
}

为了防止内存泄漏,我们在主函数中释放了链表中每个节点所分配的内存。

http://www.lryc.cn/news/437718.html

相关文章:

  • Linux下read函数详解
  • 【二叉树遍历算法应用】------补录
  • AtCoder Beginner Contest 368
  • WebGL系列教程六(纹理映射与立方体贴图)
  • 为什么nii.gz转.nrrd标签体积变大?
  • 软件安装攻略:EmEditor编辑器下载安装与使用
  • Redis的watch机制详解
  • UnrealEngine 打包Android平台应用
  • Linux:git
  • electron有关mac构建
  • C语言-数据结构 弗洛伊德算法(Floyd)邻接矩阵存储
  • pyspark 安装记录
  • 高度可定制的电竞鼠标,雷柏VT1 PRO MAX体验
  • 经验笔记:SOA(面向服务的架构)
  • triton之ttir学习
  • 如何在AWS账户上进行充值:一份详尽指南
  • (六十四)第 10 章 内部排序(静态链表的插入排序)
  • appium历史版本地址链接
  • TCPIP网络编程(尹圣雨)UDP 轮流收发消息(windows)
  • 【相机方案(2)】V4L2 支持相机图像直接进入GPU内存吗?DeepStream 确实可以将图像数据高效地放入GPU内存进行处理!
  • UEFI——PEI阶段
  • Nacos下载和启动
  • 怎么选择适合的服务器
  • 通义千问大模型Java调用,百炼
  • 新发现!一键管理所有远程会话的神器——1Remote
  • 华为 HCIP 认证费用和报名资格
  • Linux下载压缩包:tar.gz、zip、tar.bz2格式全攻略
  • 运行PaddleOCR报错:requests.exceptions.SSLError: HTTPSconnectionPool……
  • 基于STM32L431小熊派设计的智能花盆(微信小程序+腾讯云IOT)(223)
  • CentOS 入门必备基础知识