18次试验有关栈的程序

//-------------------------------------
// Stack.h
//-------------------------------------
const int SIZE = 10;//size初始化为10
//-------------------------------------
class Stack{
  int stck[SIZE];      //holds the stack
  int tos;              //index of top-of-stack
public:
  Stack():tos(0){}//tos即栈的顶部初始化为0
  int top();
  void push(int ch);   //push integer to stack
  int pop();           //pop integer from stack.
};//-----------------------------------
 //-------------------------------------
// Stack.cpp
//-------------------------------------
#include"Stack.h"
#include<iostream>
//-------------------------------------
int Stack::top()//top(),push(),pop()
{
return stck[tos-1];//无需判断 }//------------------------------------ void Stack::push(int ch){ if(tos==SIZE)//只判断是否已满,进行判断
{ std::cout
<<"\nStack is full\n"; return; } stck[tos++]=ch;//stck[tos++]=ch; }//------------------------------------ int Stack::pop()
{
if(tos==0){ std::cout<<"\nStack is empty\n"; return 0; //return null on empty stack. } return stck[--tos]; //top of stack,如果最高一层为0,输出empty,如果不为0,返回他的下一个,使下一个数值为顶部 }//------------------------------------

 

//-------------------------------------
// EX0805.cpp
// 栈应用
//-------------------------------------
#include"Stack.h"
#include<iostream>
//-------------------------------------
int main(){
  Stack s;
  s.push(10);
  s.push(12);
  s.push(14);
  std::cout<<s.top()<<"\n";
  s.pop();
  std::cout<<s.top()<<"\n";
  system("pause");
}//------------------------------------

 

posted @ 2013-05-24 13:54  herizai  阅读(157)  评论(0编辑  收藏  举报