(001)顺序栈的C++实现

2015-01-26 23:16:02 · 作者: · 浏览: 28
(001)顺序栈的C++实现 2014/12/4 jxlijunhao 这里通过C++模板类来实现一个顺序栈: 1)初始化 2)入栈 3)出栈 4)取栈顶元素
在顺序栈中(一个数组中),操作的总是发生在数组的末尾

定义一个头文件
#ifndef SQ_STACK_H
#define SQ_STACK_H

#include
  
   
using namespace std;

template
   
     class sq_stack { private: int cap; //总容量 int top; //栈顶 T *s; //指向顺序栈(栈底) public: sq_stack(int); //初始化 void print_sq_stack();//打印 int flag_sq_stack(); //检查顺序栈的状态 void push_sq_stack(T);//入栈 T delete_sq_stack(); //出栈 T read_sq_stack(); //读栈顶元素 }; //初始化 template
    
      sq_stack
     
      ::sq_stack(int m) { cap=m; s=new T[cap]; top=0; } //打印 template
      
        void sq_stack
       
        ::print_sq_stack() { int i; for (i=top;i>0;i--) { cout<
        
          int sq_stack
         
          ::flag_sq_stack() { if (top==cap) return -1; //栈满 if (top==0) return 0; //栈空 return 1; } //入栈 template
          
            void sq_stack
           
            ::push_sq_stack(T t) { if (top==cap) { cout<<"stack overflow"<
            
              T sq_stack
             
              ::delete_sq_stack() { T y; if (top==0) { cout<<"空栈"<
              
                T sq_stack
               
                ::read_sq_stack() { if (top==0) { cout<<"空栈"<
                
                 
#include "sq_stack.h"
int main()
{
	sq_stack
                  
                   s(10);
	s.push_sq_stack(50);
	s.push_sq_stack(60);
	s.push_sq_stack(70);
	s.push_sq_stack(80);
	s.push_sq_stack(90);
	s.push_sq_stack(100);

	s.print_sq_stack();
	cout<