自己写的一个简陋的C++栈模板

原创 2005年05月23日 00:27:00

说明:

1.这个栈模板基于元素数组

2.未对代码作仔细的测试

#ifndef SUNXYSTACK_H
#define SUNXYSTACK_H
#define SMAX 200
template<class T>
class Stack
{public:
 Stack();
 Stack(int);
 ~Stack();
 T& Top();
 T& Pop();
 bool Push(T&);
 bool isEmpty();
 bool isFull();
 void Display();
 private:
 int top,size;
 T* array;
};
template<class T>
Stack<T>::Stack()
{
 this->Stack(SMAX);
}
template<class T>
Stack<T>::Stack(int s=SMAX)
{ if(s>SMAX||s<=0)
  size=s;
 else
  size=SMAX
 array=new T[size];
 top=0;
}
template<class T>
Stack<T>::~Stack()
{
 size=-1;top=0;
 delete[] array;
}
template<class T>
T& Stack<T>::Top()
{
        T& p=NULL;
 if(!this->isEmpty())
                p=array[top-1];
 return p;
}
template<class T>
T& Stack<T>::Pop()
{  
 T& p=NULL;
 if(!this->isEmpty())
        {
                top--;
                p=array[top];
        }
 return p;
}
template<class T>
bool Stack<T>::Push(T& entry)
{  
 bool sign;
        if(!this->isFull())
 {
                array[top]=entry;
                top++;
  sign=true;
 }
 else
  sign=false;
 return sign;
}
template<class T>
bool Stack<T>::isEmpty()
{
        if(top==0)
  return true;
 else
  return false;
}
template<class T>
bool Stack<T>::isFull()
{
 if(top==size+1)
  return true;
 else
  return false;
}
template<class T>
void Stack<T>::Display()
{
 //add codes here
}

#endif

C++算法之 自己写一个简单的栈Stack

// Stack.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include using namespace std; enum{CO...
  • djb100316878
  • djb100316878
  • 2014年12月06日 15:51
  • 2591

栈(顺序存储)C++模板实现

#include using namespace std; template class stack{ private: int top; //栈顶指针 int maxLen; //...
  • iamgaowei
  • iamgaowei
  • 2014年04月08日 21:46
  • 1352

栈的c++模板实现

在我们软件开发中,经常要用到栈这个重要的数据结构,栈是一种先进后出的线性结构,以前见过很多人在网上写的例子,都是基于基本数据类型的,而在我们的实际开发中,大部分都是基于特定的类型,我们不可能为每一种数...
  • zhouxuguang236
  • zhouxuguang236
  • 2012年09月21日 14:23
  • 2560

[c++]栈模板的实现

头文件:StackTP.h #ifndef __STACKTP_H__ #define __STACKTP_H__ template class Stack { public: Stack();...
  • ZongYinHu
  • ZongYinHu
  • 2015年07月15日 09:49
  • 1236

c++利用链表写一个简单的栈

c++中其实有stack的模板类。功能更为强大。 自己写一个栈能让我们对栈这种数据结构更加熟悉。这个栈有一个不足之处就是里面存放的元素类型只能为int。#include using namespa...
  • huplion
  • huplion
  • 2015年11月16日 19:47
  • 1377

自己写的一个简陋的C++队列模板

说明:1.这个队列模板逻辑上以循环队列,物理上以元素数组为基础封装2.队列只能在头出元素,在尾进元素;当头等于尾时认为队列空,当头的下一位置为尾时认为队列满//--------------------...
  • sunxysong
  • sunxysong
  • 2005年05月23日 00:14
  • 1058

链栈之C++实现

链栈是借用单链表实现的栈。其不同于顺序栈之处在于: 1、链栈的空间是程序运行期间根据需要动态分配的,机器内存是它的上限。而顺序栈则是 静态分配内存的。 2、链栈动态分配内存的特性使得它一般无需考虑栈溢...
  • Lulipeng_cpp
  • Lulipeng_cpp
  • 2013年08月30日 20:58
  • 6507

STL编程题2(C++程序设计第9周)

描述写一个自己的 CMyistream_iterator 模板,使之能和 istream_iterator 模板达到一样的效果,即:输入:79 90 20 hello me输出:7979,90,20h...
  • NNNNNNNNNNNNY
  • NNNNNNNNNNNNY
  • 2016年01月16日 00:06
  • 1592

自己动手写一个栈

栈是一种后进先出的结构,实现栈有两种方法,链表和数组。用链表的好处在于不用提前声明大小,只在需要的时候创建。而使用数组的好处在于不用指针操作,但是却需要提前声明数组大小。不过通常使用栈的时候,容量都不...
  • ssjhust123
  • ssjhust123
  • 2012年09月20日 20:22
  • 2865

C++_class Template about Stack(使用类模板实现栈操作)

1.类模板定义: 在C++的Template中很多地方都用到了typename与class这两个关键字,有时候这两者可以替换,那么这两个关键字是否完全一样呢? 事实上class用于定义类,在模板引入...
  • shyjhyp11
  • shyjhyp11
  • 2017年04月15日 10:31
  • 212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自己写的一个简陋的C++栈模板
举报原因:
原因补充:

(最多只允许输入30个字)