首页

文章

C++数据结构 栈和队列的实现和应用

发布网友 发布时间:2022-04-20 04:51

我来回答

1个回答

热心网友 时间:2022-03-29 18:45

在C++数据结构学习中,顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来*比较多。而且,由于限定存取位置,顺序表示的随机存取的优点就没有了,所以,链式结构应该是首选。

栈的定义和实现

#ifndef Stack_H
#define Stack_H
#include "List.h"

template <class Type> class Stack : List//栈类定义
{
 public:
void Push(Type value)
{
 Insert(value);
}

 Type Pop()
 {
Type p = *GetNext();
RemoveAfter();
return p;
 }

 Type GetTop()
 {
return *GetNext();
 }

 List ::MakeEmpty;
 List ::IsEmpty;

};

#endif
队列的定义和实现

#ifndef Queue_H
#define Queue_H
#include "List.h"

template <class Type> class Queue : List//队列定义
{
 public:
void EnQueue(const Type &value)
{
 LastInsert(value);
}

 Type DeQueue()
 {
Type p = *GetNext();
RemoveAfter();
IsEmpty();
return p;
 }

 Type GetFront()
 {
return *GetNext();
 }

 List ::MakeEmpty;
 List ::IsEmpty;

};
#endif
测试程序

#ifndef StackTest_H
#define StackTest_H
#include "Stack.h"

void StackTest_int()
{
 cout << endl << "整型栈测试" << endl;
 cout << endl << "构造一个空栈" << endl;
 Stack<int> a;
 cout << "将1~20入栈,然后再出栈" << endl;
 for (int i = 1; i <= 20; i++) a.Push(i);
while (!a.IsEmpty()) cout << a.Pop() << ' ';
cout << endl;
}
#endif

#ifndef QueueTest_H
#define QueueTest_H
#include "Queue.h"

void QueueTest_int()
{
 cout << endl << "整型队列测试" << endl;
 cout << endl << "构造一个空队列" << endl;
 Queue<int> a;
 cout << "将1~20入队,然后再出队" << endl;
 for (int i = 1; i <= 20; i++) a.EnQueue(i);
 while (!a.IsEmpty()) cout << a.DeQueue() << ' ';
 cout << endl;
}
#endif
没什么好说的,你可以清楚的看到,在单链表的基础上,栈和队列的实现是如此的简单。
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 数据结构问题栈与队列的基本操作 四则运算用队列代替栈是否可行?怎么实现?如果不行,... 2.(1)用两个栈实现一个队列.用两个队列实现一个栈。 栈与队列的实现(java) 1.利用队列的基本操作实现栈的逆置 2.利用队列的基... 手机桌面怎么设置什么什么时间 求助高手 关于数据结构栈与队列的实现 时间日期怎么设置显示在手机桌面? 从时间复杂度和空间复杂度的两个方面同时分析一下... 手机桌面的时间怎么设置 用队列和栈实现元素的逆值 利用队列的基本操作,实现栈的逆置,写一算法 怎样用两个队列实现一个栈的功能 如何用数组实现队列和栈 c语言实现队列和栈的方法 如何用一个栈实现队列,如何用一个队列实现栈 Java:如何用两个队列实现栈 如何用队列实现栈 打印机的连接线插在电脑哪里? 行迹软件真能查对方手机位置吗 栈和队列的应用 怎样用2个栈实现队列(java) 栈和队列数据结构的特点,什么情况下用到栈,什么情... 小米9手机黑屏,按键无反应,充电无反应,放两天,... 线切割是干什么的? 怎么学线切割? 如何正确的安全操作线切割机及故障处理? 线切割机的操作规程 线切割机床的操作规程 线切割机床都有哪些安全操作规程? 如何使用数控线切割机床 线切割机床的操作加工有什么技巧分析? 线切割机床的操作步骤 线切割机的安全操作规程是什么? 线切割如何绕丝图解 线切割机床操作要注意哪些细节 电火花线切割的操作步骤和注意事项 越详细越好 慢走丝线切割机都有哪些安全规范操作事项? 请问,电脑与打印机怎样插线?有几处?拜托帮忙? 打印机的线该插主机的哪个位置
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com