一个简单的栈的实现
来源:互联网 发布:算法描述怎么写 编辑:程序博客网 时间:2024/04/30 08:24
下面的代码是一个简单的栈的实现。
1。该数据结构中的元素很简单,一个数组,一个指向栈顶的top
2。 初始化时,top为-1,且top为-1时也表示了该栈为空栈。
3。 因为top指向栈顶,压栈时,先top加1,在保存元素到栈顶
4。 因为top指向栈顶,弹栈时,先取出栈顶元素,再top减1。
5。 问题是pop时,如果是空栈,弹啥呢?
// =====================================================================================
//
// Filename: Stack.cpp
//
// Description:
//
// Version: 1.0
// Created: 09/06/2010 09:47:52 PM
// Revision: none
// Compiler: g++
//
// Author: YOUR NAME (),
// Company:
//
// =====================================================================================
#include <iostream>
using namespace std;
#define MAX_STACK_SIZE 1024
template <class C> class Stack
{
C stack[MAX_STACK_SIZE];
int top;
public:
Stack():top(-1){};
~Stack(){ cout << "release Stack" << endl;}
int push(C item)
{
if (top >= (MAX_STACK_SIZE -1))
{
cout << "stack overflow" << endl;
return -1;
}
cout << top << endl;
stack[++top] = item;
}
C pop()
{
if (top == -1)
{
cout << "empty stack" << endl;
return C(0);
}
return stack[top--];
}
};
int
main ( int argc, char *argv[] )
{
int i;
Stack<char> string;
string.push('a');
string.push('b');
string.push('c');
string.push('d');
for (i=0;i<5;i++)
cout << string.pop() << endl;
return 0;
} // ---------- end of function main ----------
- 一个简单的栈的实现
- 一个静态数组实现的简单栈
- 一个动态数组实现的简单栈
- 【C++】一个简单栈的实现
- 一个简单C顺序栈的实现
- c++ template 实现一个简单的"栈"
- 栈实现一个简单的运算器
- 十一、一个简单的栈stack实现
- C语言实现一个简单的栈
- 一个简单singleton的实现
- 一个简单的SOA实现
- 一个HUD的简单实现
- 哈希表一个简单的实现
- 一个简单的Matrix实现
- 一个四叉树的简单实现
- 一个简单文件系统的实现
- 一个简单的信号量实现
- 一个简单的RTTI实现
- 浊音与半浊音
- 特殊字符Unicode Entity Codes表
- Linux驱动开发——SmartArm3250板子上搭建Linux
- windows 下休眠命令,超好用(补充!)
- magento -- web services API 初体验
- 一个简单的栈的实现
- 关于异常的问与答
- 生活的指引
- 如果我选择了你
- 由两位面试者想到的
- 动态加载动态库
- 程序判断Windows用户帐户密码为空的方法
- 使用Lumigent Log Explorer对SQL Server的事务日志进行分析
- java读写Oracle clob数据