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

c++实现栈和队列类

c++实现栈和队列类

  • 栈(Stack)
    • Stack示意图
    • Stack.cpp
  • 队列(queue)
    • queue 示意图
    • queue.cpp

栈(Stack)

Stack示意图

在这里插入图片描述

Stack.cpp

#pragma once
#include "ListStu.cpp"template<typename T>
class Stack
{
public:
/* * void push(T& tDate)* 参数一 : T& 用户数据* 功能   :往链表的头部压入一个数据* 返回值 :无
*/void push(const T& tDate);/** void pop()* 参数一 : 无* 功能   :往链表的头部弹出一个数据,删除头数据* 返回值 :无
*/void pop();/** void GetTopDate()* 参数一 : 无* 功能   :获取栈顶数据* 返回值 :T&
*/T& GetTopDate();/** int GetCount()* 参数一 : 无* 功能   :获取栈的元素个数* 返回值 :int
*/int GetCount();private:ListStu<T> m_Stack;//栈双向链表指针
};template<typename T>
void Stack<T>::push(const T& tDate)
{m_Stack.HeadInsert(tDate);
}template<typename T>
void Stack<T>::pop()
{m_Stack.DeleteHead();
}template<typename T>
T& Stack<T>::GetTopDate()
{return *(m_Stack.begin());
}template<typename T>
int Stack<T>::GetCount()
{return m_Stack.Size();
}

队列(queue)

queue 示意图

在这里插入图片描述

queue.cpp

#pragma once
#include "ListStu.cpp"
template<typename T>
class Queue
{
public:/** void push(T& tDate)* 参数一 : T& 用户数据* 功能   :往链表的尾部压入一个数据* 返回值 :无
*/void push(const T& tDate);/** void pop()* 参数一 : 无* 功能   :往链表的头部弹出一个数据,删除头数据* 返回值 :无*/void pop();/** void GetTopDate()* 参数一 : 无* 功能   :获取栈顶数据* 返回值 :T&*/T& GetTopDate();/** int GetCount()* 参数一 : 无* 功能   :获取栈的元素个数* 返回值 :int*/int GetCount();private:ListStu<T> m_Queue;//队列双向链表,排队:后进后出原则--push尾部插入,pop 头先出
};template<typename T>
void Queue<T>::push(const T& tDate)
{m_Queue.VailInsert(tDate);
}template<typename T>
void Queue<T>::pop()
{m_Queue.DeleteHead();
}template<typename T>
T& Queue<T>::GetTopDate()
{return *(m_Queue.begin());
}template<typename T>
int Queue<T>::GetCount()
{return m_Queue.Size();
}
http://www.lryc.cn/news/307481.html

相关文章:

  • MySQL优化之索引下推
  • 【Java程序设计】【C00338】基于Springboot的银行客户管理系统(有论文)
  • C语言中大小写字母的转化
  • Camunda7.18流程引擎启动出现Table ‘camunda_platform_docker.ACT_GE_PROPERTY‘的解决方案
  • 红队打靶:DR4G0N B4LL打靶思路详解(vulnhub)
  • SQL Server添加用户登录
  • pytest如何在类的方法之间共享变量?
  • 配置前端项目到 github-pages
  • VSCode使用教程
  • vscode——本地配置(C和C++环境配置)(2)
  • 【从零开始学习重要知识点 | 第一篇】快速了解什么是幂等性以及常见解决方案
  • Jvm之内存泄漏
  • 尚硅谷webpack5笔记2
  • 笔记本Win 10系统查看电池健康状况
  • 算法--动态规划(线性DP、区间DP)
  • 【ArcGIS】统计格网中不同土地利用类型占比
  • 算法竞赛实用板子
  • RPA中国 x UiPath | 第六届RPA极客挑战赛,3月16日上海开赛!
  • 算法打卡day5|哈希表篇01|Leetcode 242.有效的字母异位词 、19.删除链表的倒数第N个节点、202. 快乐数、1. 两数之和
  • 『python爬虫』xpath变化导致无法找到指定元素(持续更新中~)
  • 人大金仓数据库Kingbase服务SQL基础操作手册
  • 赎金信00
  • 如何运行github上的项目
  • 机器学习-02-机器学习算法分类以及在各行各业的应用
  • Java项目学习
  • npm run dev和npm run serve两个命令的区别
  • ui设计:利用即使设计设计出漂亮样式
  • [unity]lua热更新——个人复习笔记【侵删/有不足之处欢迎斧正】
  • Springboot日常总结-@RestController和@Controller的区别
  • MongoDB之客户端工具与核心概念及基本类型篇