我的模板栈

 1 template<typename T>
 2 struct Node
 3 {
 4     T data;
 5     Node<T>* next;
 6 };
 7
 8 template<typename T>
 9 class stack
10 {
11     Node<T>* top;
12 public:
13     stack():top(NULL){}
14     void push(T n);
15     T pop();
16     bool stackEmpty();
17     T getTop();
18     ~stack(){}
19     void print();
20 };
21
22 template<typename T>
23 void stack<T>::push(T n)
24 {
25     Node<T>* r=new Node<T>;
26     r->data=n;
27     r->next=top;
28     top=r;
29 }
30
31 template<typename T>
32 T stack<T>::pop()
33 {
34     Node<T> *ptr = top;
35     top = top->next;
36     T t=ptr->data;
37     delete ptr;
38     return t;
39 }
40
41
42 template<typename T>
43 void stack<T>::print()
44 {
45     for(Node<T>* p=top;p;p=p->next)
46         cout<<p->data<<"  ";
47 }
48
49 template<typename T>
50 T stack<T>::getTop()
51 {
52     return top->data;
53 }
54
55 template<typename T>
56 bool stack<T>::stackEmpty()
57 {
58     if(top)return false;
59     else return true;
60 }
时间: 2024-10-26 10:27:36

我的模板栈的相关文章

模板栈的实现以及调用失败

场景说明:实现了了模板栈,但是调用的过程中,无法实现基本的功能: 声明如下: template<class T>struct SNode {     T t;     SNode<T>* pNextNode; }; template<class T> class CStack { private:     SNode<T>* m_pCStackTop;     int  m_nNodeCount; public:     CStack();     ~CSt

011 模板栈和队列

/* 目录: 一: 栈模板 1 类内编写 2 类外编写 二: 队列 1 类内编写 2 类外编写 */ 一: 栈模板 1 类内编写 // Stack.h #pragma once #include <iostream> template<typename DATA> class CStack { public: CStack() :m_nTop(-1) { } bool isFull() { if (m_nTop + 1 >= COUNT) { return true; } r

模板 - 栈

STL的栈,可能有一些不需要的信息. 其实用数组实现之后是这个鬼样子.感觉还不如直接用. struct Stack{ int st[MAXSIZE]; int top; inline void Clear(){ top=0; } inline void Push(int x){ st[++top]=x; } inline void Pop(){ --top; } inline int Top(){ return st[top]; } inline int Size(){ return top;

模板栈的实现

以下代码来自<C++编程思想>P410-模板介绍 #include<fstream> #include<iostream> #include<string> using namespace std; template<class T> class Stack { private: struct Link { T* data; Link* next; Link(T* da,Link* ne):data(da),next(ne){} }* head;

数据结构与算法系列研究二——栈和队列

栈和队列的相关问题分析 一.栈和队列定义 栈和队列是两种重要的数据结构.从结构特性角度看,栈和队列也是线性表,其特殊性在于它们的基本操作是线性表的子集,是操作受限的线性表,可称为限定性的数据结构:从数据类型角度看,其操作规则与线性表大不相同,是完全不同于线性表的抽象数据类型.                    图1 栈的结构                                                 图2 队列的结构   1.1.栈是限定在表的一端进行插入和删除操作的线性

栈_STACK的实现

栈_STACK 栈的基本操作 栈的代码实现 栈的C语言实现 栈的C实现 结论 本文中的完整代码你可以在这里: https://github.com/qeesung/algorithm/tree/master/chapter10/10-1/栈 或者这里: 顺序栈的实现:http://download.csdn.net/detail/ii1245712564/8744663 链式栈的实现:http://download.csdn.net/detail/ii1245712564/8744679 C语言

C++中template的简单用法

模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计.C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream.使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数.返回值取得任意类型. 一.函数模板 在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下: 1 void swap(int&a , int& b) { 2 int temp

[转]C++ Template

引言 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计.C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream. 函数模板 在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下: void swap(int&a , int& b) { int temp = a; a = b; b = temp;} 但是如果是要支持long,string,自定义class的swap函数

C++ Template(转)

引言 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计.C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream. 函数模板 在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下: void swap(int&a , int& b) { int temp = a; a = b; b = temp;} 但是如果是要支持long,string,自定义class的swap函数