博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构实验7
阅读量:3953 次
发布时间:2019-05-24

本文共 1631 字,大约阅读时间需要 5 分钟。

队列

要求

创建队列类,采用链式描述
实现卡片游戏
描述
假设桌上有一叠扑克牌,依次编号为1-n(从上至下)。当至少还有两张的时候,可以进行操作:把第一张牌扔掉,然后把新的第一张(原先扔掉的牌下方的那张牌,即第二张牌)放到整叠牌的最后。输入n,输出最后剩下的牌。
格式
输入
一个整数n,代表一开始卡片的总数。
输出
最后一张卡片的值。
样例
输入
100

输出

72

限制

1s, 64MB for each test case.

#include
#include
using namespace std;template
struct chainNode {
T element; chainNode
*next; chainNode() {
} chainNode(const T& element) {
this->element = element;} chainNode(const T& element, chainNode
* next) {
this->element = element; this->next = next;}};template
class linkedQueue { public: linkedQueue(int initialCapacity = 10) { queueFront = NULL; queueSize = 0;} ~linkedQueue(); bool empty() const { return queueSize == 0;} int size() const { return queueSize;} T& front() { if (queueSize == 0) exit(1); return queueFront->element; } T& back() { if (queueSize == 0) exit(1); return queueBack->element; } void pop(); void push(const T&); private: chainNode
* queueFront; chainNode
* queueBack; int queueSize; };template
linkedQueue
::~linkedQueue(){ while (queueFront != NULL) { chainNode
* nextNode = queueFront->next; delete queueFront; queueFront = nextNode; }}template
void linkedQueue
::pop(){ if (queueFront == NULL) exit(1); chainNode
* nextNode = queueFront->next; delete queueFront; queueFront = nextNode; queueSize--;}template
void linkedQueue
::push(const T& theElement){ chainNode
* newNode = new chainNode
(theElement, NULL); if (queueSize == 0) queueFront = newNode; else queueBack->next = newNode; queueBack = newNode; queueSize++;}int main(){ int n; linkedQueue
lq; cin>>n; for(int i=0;i

转载地址:http://nfwzi.baihongyu.com/

你可能感兴趣的文章
java基础学习之Timer定时器使用
查看>>
Linux中修改环境变量及快速生效方法
查看>>
解决报错 “build.sh /bin/bash^M: 坏的解释器:没有那个文件或目录”
查看>>
linux学习之tr操作符用法
查看>>
shell的dirname $0和readlink用法
查看>>
设计模式——外观模式详解
查看>>
Android APP架构设计——MVC、MVP和MVVM介绍
查看>>
Android APP架构设计——MVP的使用示例
查看>>
Android开发——布局性能优化的一些技巧(一)
查看>>
NetWork——关于TCP协议的三次握手和四次挥手
查看>>
设计模式——观察者模式详解
查看>>
Java集合——LinkedList源码详解
查看>>
Android开发——LinearLayout和RelativeLayout的性能对比
查看>>
NetWork——关于HTTP、HTTPS的知识总结(以及Android网络优化建议)
查看>>
Android开发——支付宝和微信支付快速接入流程
查看>>
NetWork——TCP的流量控制和拥塞控制
查看>>
Android开发——解决方法数越界问题
查看>>
算法相关——Java排序算法之希尔排序(五)
查看>>
算法相关——Java排序算法之选择排序(六)
查看>>
Android开发—— 热修复Tinker源码浅析
查看>>