学数据结构的一点想法

LinkStack.h文件:

#ifndef LINKSTACH_H
#define LINKSTACH_H#include <stdexcept>
using std::exception;template<class Entry>
class LinkStack
{
private://template<class Entry>struct StackToken{Entry data;StackToken *next;};StackToken *ptr;size_t count;void freeptr(){StackToken *nptr = ptr;while(nptr){StackToken *tmp = nptr->next;delete nptr;nptr = tmp;}}void initptr(StackToken *p){StackToken *nptr = p.**tail = &ptr;while(nptr){StackToken *tmp = new StackToken;tmp->data = nptr->data;*tail = tmp;nptr = nptr->next;tail = &(*tail)->next;}*tail = 0;}public:LinkStack() : ptr(0), count(0) {}~LinkStack() {freeptr();}LinkStack(const LinkStack &that) {initptr(that->ptr);}LinkStack& operator=(const LinkStack &that){if(this != *that){freeptr();initptr(that->ptr);}}void push(const Entry &e){StackToken *t = new StackToken;t->data = e;t->next = ptr;ptr = t;count++;}void pop(){if(!count) throw exception("栈已空!");StackToken *t = ptr;ptr = t->next;delete t;count--;}bool empty() {return count == 0;}Entry top(){if(!count) throw exception("栈已空!");return ptr->data;}};#endif //LINKSTACH_H

main.cpp文件:

#include "LinkStack.h"
#include <iostream>
using namespace std;int main()
{LinkStack<int> psgs;int n;cout << "请输入游客人数:" << endl;cin >> n;cout << "按顺序输入乘客编号:" << endl;for(int i = 0; i < n; i++){int item;cin >> item;psgs.push(item);}cout << "乘客下车次序是:" << endl;while(!psgs.empty()){cout << psgs.top() << ' ';psgs.pop();}cout << endl;system("pause");return 0;
}

[2013.9.27][cpp]一个简单的链接栈模型相关推荐

  1. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  2. seq2seq模型_使用Tensorflow搭建一个简单的Seq2Seq翻译模型

    1.背景 首先,这篇博文整理自谷歌开源的神经机器翻译项目Neural Machine Translation (seq2seq) Tutorial.如果你直接克隆这个项目按照Tutorial中的说明操 ...

  3. Oracle联立多个表建视图,一个简单的联立方程组模型让你了解内外生变量、如何识别以及2SLS估计步骤...

    联立方程模型就是由多个相互联系的单一方程构成的经济计量模型.联立方程模型描述经济变量间的因果关系是双向的,即某一经济变量决定着其它一些经济变量,反过来又受其他经济变量影响.有时由于两个变量之间存在双向 ...

  4. 《Python核心编程》练习题之2-7:创建一个简单的半双工聊天程序。半双工,就是指建立一个连接且服务开始后,一次只能一端发消息,不能同时对发消息。一个参与者在服务器一侧,另一位在客户端一侧

    按照题目的意思,我写的程序如下: 服务器端程序: import socketHOST = '' # Symbolic name meaning all available interfaces POR ...

  5. 深度学习:图像去雨网络实现Pytorch (二)一个简单实用的基准模型(PreNet)实现

    本文参考文献:Progressive Image Deraining Networks: A Better and Simpler Baseline Dongwei Ren1, Wangmeng Zu ...

  6. 一个简单的电梯状态模型

    题目:  "简易电梯控制系统" 大家日常生活中经见到的电梯. 你有没有想过它的内部运行机制和实现方法.现在大家就共同讨论一下电梯到底是怎么运行的. 1. 尝试画出你心目中的电梯系统 ...

  7. 通过Dreamweaver建立一个简单的网页音乐盒模型效果/css/h5/

    一.结构分析 由图我们可以看到音乐盒的效果右外边框盒子组成,盒子内部又分为两个部分,其中上面部分为标题,下面部分为图片. 二.样式 1.通过外层的大盒子对音乐盒的整体样式进行控制,设置最外层的宽度.高 ...

  8. 如何用SAP ABAP编程语言实现一个简单的区块链模型

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  9. minGW 2022/7/27 安装教程 简单可用

    minGW 2022/7/27 安装教程 简单可用 链接: linkhttp://c.biancheng.net/view/8114.html

最新文章

  1. IIS的虚拟目录和子应用程序
  2. 定时器里面的作用域问题
  3. libsvm 64 系统下编译问题
  4. WIFI-MESH + 蓝牙MESH在智能家居领域有着广泛的应用场景,他们的区别到底在哪里呢
  5. 算法导论-排序(四)计数排序(线性时间排序)
  6. [转载]Java数据库设计中的14个技巧
  7. Eclipse利用Maven2搭建SpringMVC框架的Web工程
  8. 学习指南_学习指南语文—成于素养,归于方法
  9. LeetCode:Generate Parentheses
  10. 你知道defer的坑吗?
  11. linux dd tar 整盘备份,tar(压缩,打包,备份),dd(备份,建档),cpio
  12. 区块链 DAG分布式账本技术 DAG数据结构和基于区块的数据结构的差别 优势
  13. Navicat Premium 连接 MongoDB 失败: Cannot connect to MongoDB.No suitable servers found: ......
  14. sequence和sequencer — UVM
  15. java中如何在键盘中输入一串以逗号隔开数字然后存入数组中,并输出。
  16. 模拟cmos集成电路(9)
  17. 图形世界分裂的两派——理清Direct3D和OpenGL的脉络
  18. M1卡区块控制位详解
  19. 趣味算法图解,高清无码图免费下载
  20. 小白读odoo参考手册--字段

热门文章

  1. 蓝桥杯单片机:11届决赛
  2. STM32 定时器输出pwm的频率计算方法 PWM 频率检测方法 直流电机的位置控制
  3. 【C语言】单词个数统计(库函数第一次运用)
  4. 喀什市2021年高考成绩查询,新疆喀什地区2021高考文化生分数线
  5. 菜鸟学习笔记:Java提升篇9(网络1——网络基础、Java网络编程)
  6. data structure最短路径问题
  7. 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
  8. 【高校宿舍管理系统】第十一章 学生系统
  9. 【力扣】NO.7.整数反转
  10. 【经验分享】为什么后台取到的时间和前台差8个小时?