栈操作的C++实现
2014-07-06 14:41
232 查看
原文地址:http://blog.csdn.net/moxiaomomo/article/details/6393258
感谢作者分享
#ifndef STACK_H
#define STACK_H
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
template<class T>
class Stack
{
public:
int top;
int maxtop;
T *data;
Stack(int size); //构造函数
~Stack();
bool isEmpty(); //判断为空
bool isFull(); //判断为满
void push(T ch/*,Stack s*/); //压栈
T pop(); //出栈
};
template <class T>
Stack<T>::Stack(int size)
{
maxtop=size;
top=-1;
data=new T[size];
}
template <class T>
Stack<T>::~Stack()
{
delete []data;
}
template <class T>
bool Stack<T>::isEmpty()
{
return top<0;
}
template <class T>
bool Stack<T>::isFull()
{
return top==maxtop;
}
template <class T>
void Stack<T>::push(T ch/*,Stack s*/)
{
if (isFull())
{
cout<<"The stack is full~"<<endl;
return;
}
data[++top]=ch;
}
template <class T>
T Stack<T>::pop()
{
if (isEmpty())
{
cout<<"The stack is empty~"<<endl;
return -1;
}
T s=data[top];
top--;
return s;
}
#endif
感谢作者分享
#ifndef STACK_H
#define STACK_H
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
template<class T>
class Stack
{
public:
int top;
int maxtop;
T *data;
Stack(int size); //构造函数
~Stack();
bool isEmpty(); //判断为空
bool isFull(); //判断为满
void push(T ch/*,Stack s*/); //压栈
T pop(); //出栈
};
template <class T>
Stack<T>::Stack(int size)
{
maxtop=size;
top=-1;
data=new T[size];
}
template <class T>
Stack<T>::~Stack()
{
delete []data;
}
template <class T>
bool Stack<T>::isEmpty()
{
return top<0;
}
template <class T>
bool Stack<T>::isFull()
{
return top==maxtop;
}
template <class T>
void Stack<T>::push(T ch/*,Stack s*/)
{
if (isFull())
{
cout<<"The stack is full~"<<endl;
return;
}
data[++top]=ch;
}
template <class T>
T Stack<T>::pop()
{
if (isEmpty())
{
cout<<"The stack is empty~"<<endl;
return -1;
}
T s=data[top];
top--;
return s;
}
#endif
相关文章推荐
- C++虚函数实现一般化操作内幕分析(源码VC6.0可以直接调试)
- 多项式操作的c++实现
- 栈操作的C++实现
- C++中用函数模板实现和优化抽象操作
- 数据结构_串_串的一些操作_C++实现
- C++中用函数模板实现和优化抽象操作
- 二叉查找树(二叉排序树)操作大全C++实现
- c++中复数的递增与递减操作实现
- C++实现C#的get,set属性操作
- 二叉查找树的各种操作C++实现
- C++对注册表常见操作的封装实现
- C++对注册表常见操作的封装实现(五)
- C++对注册表常见操作的封装实现(四)
- Windows服务用C++代码实现的一些操作-1:修改服务启动类型
- C++中用模板类(结点类,链表类)实现的单链表的合并操作!
- C++实现文件操作(源码)!
- C++对注册表常见操作的封装实现(三)
- C++实现RTTI具体操作经验总结
- C++使用VARIANT实现二维数组的操作
- 二叉排序树(二叉查找树)的各种操作C++最新实现