栈(C++实现)

来源:互联网 发布:java 判断小数 编辑:程序博客网 时间:2024/04/27 19:16

栈数组实现

stack_with_array.h

#ifndef STACK_WITH_ARRAY_H#define STACK_WITH_ARRAY_H#include <cstdlib> // provides size_ttemplate < class Item >class stack{public:typedef std::size_t size_type;typedef Item value_type;static const size_type CAPACITY = 30;stack( ) {used = 0;} ;void push(const Item& entry) ;void pop( ) ;bool empty( ) const {return used == 0 ;}size_type size( ) const {return used ;}Item top( ) const ;private:Item data[ CAPACITY ] ;size_type used ;};#endif

stack_with_array.cpp

#include <cassert>template <class Item>const typename stack<Item>::size_type stack<Item>::CAPACITY ;template <class Item>void stack<Item>::push(const Item& entry){assert(size( ) < CAPACITY);data[ used] = entry ;++used ;}template <class Item>void stack<Item>::pop( ){assert( !empty( ) ) ;--used ;}template <class Item>Item stack<Item>::top( ) const{assert(!empty()) ;return data[used - 1] ;}

栈链表实现

stack_with_list.h

#ifndef STACK_WITH_LIST_H#define  STACK_WITH_LIST_H#include <cstdlib>#include <list>template <class Item>class stack{public://TYPEDEFStypedef std::size_t size_type ;typedef Item value_type ;//CONSTRCTORS AND EDSTRUCTORstack( ) {top_ptr = NULL ; }~stack( ){ top_ptr.clear( ) ;}//MODIFICATION MEMBER FUNCTIONvoid push( const Item& entry ) ;void pop( ) ;void operator =(const stack& source ) ;//CONSTANT MEMBER FUNCTIONSsize_type size( ) {return top_ptr->size( ) ; }bool empty( ) const {return top_ptr == NULL ;}Item top ( ) const ;private:list *top_ptr ;};#include "stack_with_list.template"#endif


0 0
原创粉丝点击