链式栈简单模板代码

  1 #include<iostream>
  2 #include<stdlib.h>
  3 using namespace std;
  4
  5 template <class T>
  6 class LinkStack;
  7 template <class T>
  8 class StackNode
  9 {
 10 public:
 11     friend class LinkStack<T>;
 12 private:
 13     T data;
 14     StackNode<T> *next;
 15 };
 16 template<class T>
 17 class LinkStack
 18 {
 19 public:
 20     LinkStack() { top = NULL; }
 21     ~LinkStack();
 22     bool StackEmpty()
 23     { return top ==NULL; }
 24     void Push(T x);
 25     void Pop(T &x);
 26     T GetTop();
 27
 28 private:
 29     StackNode<T>*top;
 30 };
 31 template<class T>                     //入栈
 32 void LinkStack<T>::Push(T x)
 33 {
 34     StackNode<T> *p;
 35     p = new StackNode<T>;
 36     p->data = x;
 37     p->next = top;
 38     top = p;
 39 }
 40 template <class T>                 //返回栈顶元素
 41 T LinkStack<T>::GetTop()
 42 {
 43     if (StackEmpty())
 44     {
 45         cout << "为空" << endl;
 46         return -1;
 47     }
 48     else return top->data;
 49 }
 50 template <class T>                   //出栈
 51 void LinkStack<T>::Pop(T &x)
 52 {
 53     StackNode<T> *p = top;
 54     if (StackEmpty())
 55     {
 56         cout << "为空" << endl;
 57     }
 58     else
 59     {
 60         x = p->data;
 61         top = p->next;
 62         delete p;
 63     }
 64 }
 65 template <class T>
 66 LinkStack<T>::~LinkStack()        //析构函数
 67 {
 68     StackNode <T> *s;
 69     while (top)
 70     {
 71         s = top->next;
 72         delete top;
 73         top = s;
 74     }
 75 }
 76
 77 void conversion(int N, int d)         //进制转换
 78 {
 79     LinkStack<int>S;
 80     int i;
 81     while (N)
 82     {
 83         S.Push(N%d);
 84         N = N / d;
 85
 86     }
 87     while (!S.StackEmpty())
 88     {
 89         S.Pop(i);
 90         cout << i;
 91
 92     }
 93     cout << endl;
 94 }
 95 void main()
 96 {
 97     int N(64), d(2);
 98     cout<<"十进制64转化为二进制:";
 99     conversion(N, d);
100     system("PAUSE");
101     return;
102 }
时间: 2024-12-30 04:06:12

链式栈简单模板代码的相关文章

模板代码 - 列表和下拉刷新

*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HEAD

PHP自写简单模板引擎,供新手学习

今天要写点小东西,突然想到要用模板引擎.就"随手"写了一个,发上来供新手学习.搞了这么久PHP,想想也真是感慨,当年研究了几天的东西现在一两个小时就弄完了,当年一起完耍的女神现在已经不知所踪了...咳咳,下面是代码: <?php /**************** * @author: 一曲忧伤 * @email: [email protected] * @discription: 简单模板引擎 */ class view { var $tpl_dir = 'template';

敌兵布阵 (线段树简单模板题)

https://vjudge.net/contest/318019#problem C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视. 中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向

Android Studio 配置快速生成模板代码

前言 Android studio 有提供快速生成模板代码的功能,其实这个功能也可以自定义配置.此篇博客将讲解如何使用此功能 进入Settings 选择 Editor > Live Templates 创建一个自己的组 为了不与Android studio已经自带的模型代码混淆,我们创建一个自己的组来管理自己的模板代码,请看下图: 下图点击 + 号 ,有2个选择 1.第一个选择是在当前组里新建一个模板代码 2.第二个就是生成一个组,我已经创建了一个叫user的组 编辑代码模板 下图就是生成模板代

KMP算法的定义及KMP练手题 HDU 1711 Number Sequence (我的模板代码)

题意:就是要你来找出b数组在a数组中最先匹配的位置,如果没有则输出-1 思路:直接KMP算法(算法具体思想这位牛写的不错http://blog.csdn.net/v_july_v/article/details/7041827) AC代码: #include<cstdio> #include<cstring> #include<stdlib.h> #include<iostream> using namespace std; #define maxn 100

js日期格式简单转换代码

js日期格式简单转换代码: 未经修饰的东西总是狂野粗糙的,比如人没有经过良好的教育,这人可能会有各种问题,同样js中的时间格式也是如此,所以要对时间进行一定的格式化操作,下面是一段非常简单的代码实例和大家分享一下. 代码如下: function dateStr(x,y) { var z={ y:x.getFullYear(), M:x.getMonth()+1, d:x.getDate(), h:x.getHours(), m:x.getMinutes(), s:x.getSeconds() }

inputstream和outputstream读写数据模板代码

//读写数据模板代码 byte buffer[] = new byte[1024]; int len=0; while((len=in.read(buffer))>0){ out.write(buffer,0,len); }

java:Spring框架1(基本配置,简单基础代码实现)

1.基本配置: 步骤一:新建项目并添加spring依赖的jar文件和commons-logging.xx.jar: 步骤二:编写实体类,DAO及其实现类,Service及其实现类; 步骤三:在src下新建配置文件applicationContext.xml,并配置bean节点和property: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springfr

原生ajax调用数据简单实例代码

原生ajax调用数据简单实例代码:由于jQuery的盛行,现在使用较多的是jQuery封装好了的ajax,因为解决了浏览器兼容性问题,这对程序员来说就等于去掉了一个心头大患,但并非原生ajax就销声匿迹,并且本人感觉还是对原生的ajax有所了解的好,下面就是一段ajax数据调用的实例代码,非常的简单,初学者可以参考一下.代码如下:一.兼容浏览器部分: function xmlHttpR() { var xmlhttp; if(window.XMLHttpRequest) { xmlhttp=ne