C++ 链表实现栈、队

链表实现栈 

// 链表实现栈
#include<iostream>
using namespace std;// 链表节点
class Node
{
public:int data;Node* next;Node(){}Node(int data):data(data),next(nullptr){}
};// 链表栈
class ListStack
{
public:Node* top;int count;
public:ListStack();void push_stack(int data);void pop_stack();void show_stack();
};ListStack::ListStack(){this->top = NULL;this->count = 0;
}void ListStack::push_stack(int data){Node* new_node = new Node(data);new_node->next = this->top;this->top = new_node;this->count ++;
}void ListStack::pop_stack(){if(this->count){Node* tmp = this->top;this->top = top->next;// 这里tmp是浅拷贝top指针,直接拷贝top指向的堆区地址,故可实现出栈元素的空间释放delete tmp;tmp = NULL;this->count --;}
}void ListStack::show_stack(){if(this->top == NULL){cout<<"the stack is empty!"<<endl;}else{Node* cur = this->top;while(cur != NULL){cout<<cur->data<<',';cur = cur->next;}cout<<endl;}
}int main()
{ListStack* mystack = new ListStack();mystack->show_stack();mystack->push_stack(1);cout<<"top= "<<mystack->top->data<<",count= "<<mystack->count<<endl;mystack->show_stack();mystack->push_stack(2);cout<<"top= "<<mystack->top->data<<",count= "<<mystack->count<<endl;mystack->show_stack();mystack->pop_stack();mystack->show_stack();return 0;
}

链表实现队列

// 链表实现队列#include<iostream>
using namespace std;//链表节点
class Node
{
public:int data;Node* next;
public:Node(){}Node(int data):data(data),next(nullptr){}
};//链表队列:头部删除,尾部添加(先去先出)
class ListQueue
{
public:Node* front;Node* rear;int count;
public:ListQueue(){this->count = 0;this->front = NULL;this->rear = NULL;}void push_queue(int data);void pop_queue();void show_queue();
};// 尾插 入队
void ListQueue::push_queue(int data){Node* new_node = new Node(data);if(this->rear != NULL){this->rear->next = new_node;this->rear = new_node;}else{this->rear = new_node;this->front = new_node;}this->count ++;
}// 头部删除:出队
void ListQueue::pop_queue(){//队列为空if(this->front == NULL){return;}else{Node* tmp = this->front;//队列只有一个元素if(this->front == this->rear){this->front = NULL;this->rear = NULL;}else{this->front = this->front->next;}delete tmp;tmp = NULL;this->count --;}}//遍历队列
void ListQueue::show_queue(){if(this->front == NULL){cout << "the queue is empty" << endl;}else{Node* cur = this->front;while(cur != NULL){cout<<cur->data<<", ";cur = cur->next;}cout<<endl;cout<<"count:"<<this->count<<endl;}
}int main()
{ListQueue* myqueue = new ListQueue();myqueue->show_queue();myqueue->push_queue(1);myqueue->push_queue(2);myqueue->push_queue(3);cout<<"front:"<<myqueue->front->data<<", rear:"<<myqueue->rear->data<<endl;myqueue->show_queue();myqueue->pop_queue();myqueue->show_queue();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/233757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习环境配置------windows系统(GPU)------Pytorch

深度学习环境配置------windows系统&#xff08;GPU&#xff09;------Pytorch 准备工作明确操作系统明确显卡系列 CUDA和Cudnn下载与安装1.下载2.安装 环境配置过程1.安装Anacoda2.配置环境1&#xff09;创建一个新的虚拟环境2&#xff09;pytorch相关库的安装 2.安装VScode1&…

C# Tcplistener,Tcp服务端简易封装

文章目录 前言相关文章前言设计代码简单使用运行结果 前言 我最近有个需求要写Tcp服务端&#xff0c;我发现Tcp服务端的回调函数比较麻烦&#xff0c;简化Tcp的服务&#xff0c;我打算自己封装一个简单的Tcp服务端。 相关文章 C# TCP应用编程三 异步TCP应用编程 C# Tcpclient…

ES elasticsearch-analysis-dynamic-synonym连接数据库动态更新synonym近义词

ES elasticsearch-analysis-dynamic-synonym连接数据库动态更新synonym近义词 修改源码实现连接数据库获取近义词汇 下载elasticsearch-analysis-dynamic-synonym打开项目(https://github.com/bells/elasticsearch-analysis-dynamic-synonym/tree/master) 一、修改pom.xml …

ZLMediaKit的转流流程

zlmediakit的优势就是支持多种媒体容器和媒体协议。我从推流和拉流的两个角度&#xff0c;梳理出了转流的核心骨架。 推流 协议和容器格式的转换&#xff0c;最基本的内核就是音视频数据的扭转。对视频而言就是&#xff0c;解封装帧数据&#xff0c;组帧&#xff0c;封装帧。…

OpenHarmony 启动流程优化

目前rk3568的开机时间有21s&#xff0c;统计的是关机后从按下 power 按键到显示锁屏的时间&#xff0c;当对openharmony的系统进行了裁剪子系统&#xff0c;系统app&#xff0c;禁用部分服务后发现开机时间仅仅提高到了20.94s 优化微乎其微。在对init进程的log进行分析并解决其…

ax650使用ax-pipeline进行推理

ax650使用ax-pipeline进行推理 ##搭建交叉编译环境 拉取ax-pipeline源码及子模块 git clone --recursive https://github.com/AXERA-TECH/ax-pipeline.git下载sdk cd ax-pipeline ./download_ax_bsp.sh ax650 cd ax650n_bsp_sdk wget https://github.com/ZHEQIUSHUI/assets…

基于CNN+数据增强+残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)+数据集+模型(五)

系列文章目录 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型&#xff08;一&#xff09; 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型&#xf…

butterfly蝴蝶分类

一、分类原因 由于植物分类所使用的数据集存在一定问题&#xff0c;修改起来比较麻烦&#xff0c;本次采用kaggle的ButterflyMothsImageClassification数据集&#xff0c;对100这种蝴蝶进行分类。 二、100中蝴蝶类别 ‘ADONIS’,‘AFRICAN GIANT SWALLOWTAIL’,‘AMERICAN S…

基于ssm高校推免报名系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把高校推免报名管理与现在网络相结合&#xff0c;利用java技术建设高校推免报名管理系统&#xff0c;实现高校推免报名的信息化。则对于进一步提高高校推免报名管理发展&#xff0c;丰富高校推免报名管理经验能起到不少的促进作用。…

可以应用于点云的深度学习方法

点云处理中应用深度学习方法正变得越来越流行&#xff0c;特别是在任务如分类、分割、检测和重建等领域。下面列出了一些在点云处理中常用的深度学习方法&#xff1a; PointNet 和 PointNet&#xff1a; PointNet 是首个直接在点云上工作的深度学习模型。它能够从整个点集中直接…

Tomcat 部署论坛

一、安装好mysql数据库和jdk之后 开始部署论坛 用Navicat Premium 15连接mysql数据库并创建jforum数据库 下载版本 点击安装选择minninum点击下一步 点击一下一步 选择默认安装路径 安装验证&#xff0c;在安装完毕且启动Apache Tomcat&#xff0c;通过浏览器访问tomcat的80…

C++/Qt如何处理程序崩溃

在 C 中&#xff0c;程序崩溃时可以通过信号处理机制来捕获崩溃信号&#xff0c;并在程序崩溃时给用户一个提示。以下是一个简单的示例&#xff1a; cpp #include <csignal> #include <iostream> void signalHandler(int signal) { std::cerr << &quo…

动态规划 - 70.爬楼梯(C#和C实现)

动态规划 - 70.爬楼梯(C#和C实现) 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a; 给定 n 是一个正整数。 示例 1: 输入&#xff1a; 2 输出&#xff1a; 2 解释&…

【QT】非常简单的登录界面实现

本系列是作者自学实践过程的记录 本文是关于登录界面设计 有问题欢迎讨论 效果图&#xff1a; 一、创建项目和主界面 创建Qt Widget Application 这里我们使用qmake而不是cmake 这是主界面&#xff0c;登录界面等后面再创建&#xff0c;这里要勾选上generate form&#xff0…

如何提高React组件的渲染效率的?在React中如何避免不必要的render?

面试官&#xff1a;说说你是如何提高组件的渲染效率的&#xff1f;在React中如何避免不必要的render&#xff1f; 一、是什么 react 基于虚拟 DOM 和高效 Diff 算法的完美配合&#xff0c;实现了对 DOM 最小粒度的更新&#xff0c;大多数情况下&#xff0c;React 对 DOM 的渲染…

RocketMQ系统性学习-SpringCloud Alibaba集成RocketMQ以及消费收发实战

文章目录 Spring Cloud Alibaba 集成 RocketMQ 最佳实践集成依赖DashBoard消息收发实战 Spring Cloud Alibaba 集成 RocketMQ 最佳实践 SpringBoot 相对于 SSM 来说已经很大程度上简化了开发&#xff0c;但是使用 SpringBoot 集成一些第三方的框架&#xff0c;还是需要花费一些…

Seata使用详解

分布式事务介绍分布式事务的优缺点CAP理论介绍Base理论介绍CAP和BASE之间有什么区别Seata介绍Seata支持的事务模式介绍Seata的架构Seata应用场景Seata集群部署Seata集群部署的优缺点Seata在Java中的使用案例Seata在Java中的代码示例Seata与SpringBoot2.x的整合Seata与SpringBoo…

SpringIOC之BeanExpressionContextAccessor

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

NXP应用随记(六):S32K3xx的时钟与PIN简介

目录 1、S32K3基础时钟 1.1、关键功能 1.2、时钟产生模块 1.3、系统时钟 1.4、模式输入模块 1.5、时钟监控模块 2、S32DS时钟与外设配置工具 2.1、创建一个PIT模块 3、IO配置 3.1、IO资源分析 3.2、IO配置工具 1、S32K3基础时钟 S32K3有五个时钟源 1、快速内部 RC 晶…

MySQL中varchar(10)中定义的长度是字符长度还是字节长度长

1.我们经常 创建 varchar(20) name这个20长度,究竟是表示的字符数还是字节数&#xff1f;根编码字符集又有没有关系&#xff1f; 首先 mysql 5.X 以上的版本的定※中 表示的字符度&#xff0c;如上varchar&#xff08;20&#xff09;你既可以添加20个英文字符&#xff0c;世可…