一个简单的listStack

一个简单的listStack
  1 // #include "stack.h"
  2
  3 #pragma once
  4 #include  < iostream >
  5
  6 using   namespace  std;
  7 class  Stack
  8 {
  9public:
 10    Stack(void);
 11    virtual ~Stack(void);
 12public:
 13    virtual void push (char c) = 0;
 14    virtual char pop () = 0;
 15}
;
 16
 17
 18 // #include "ListStack.h"
 19
 20 #pragma once
 21 #include  " stack.h "
 22 #include  < list >
 23
 24 class  ListStack :
 25      public  Stack
 26 {
 27    friend ostream& operator <<(ostream& out, ListStack &rht);
 28public:
 29    ListStack(void);
 30    ~ListStack(void);
 31
 32public:
 33    virtual void push (char c);
 34    virtual char pop();
 35
 36public:
 37
 38    list<char> m_ls;
 39    
 40}
;
 41
 42
 43 // #include "stack.cpp"
 44
 45 #include  " StdAfx.h "
 46 #include  " Stack.h "
 47
 48 Stack::Stack( void )
 49 {
 50}

 51
 52 Stack:: ~ Stack( void )
 53 {
 54}

 55
 56
 57 //  #include "ListStack.h"
 58
 59
 60 #include  " StdAfx.h "
 61 #include  " ListStack.h "
 62 #include  < iterator >
 63 #include  < list >
 64 ListStack::ListStack( void )
 65 {
 66}

 67
 68 ListStack:: ~ ListStack( void )
 69 {
 70}

 71
 72 void  ListStack::push( char  c)
 73 {
 74
 75    m_ls.push_front(c);
 76}

 77
 78 char  ListStack::pop()
 79 {
 80    char c =  m_ls.front();
 81        m_ls.pop_front();
 82    return c;
 83
 84}

 85 ostream &   operator   << (ostream  & out , ListStack  & rht)
 86 {
 87    cout<<"stack element";
 88    list<char>::iterator beg = rht.m_ls.begin();
 89    list<char>::iterator end = rht.m_ls.end();
 90    for(; beg != end; beg -- )
 91
 92      out<<rht.pop();
 93
 94
 95    return out;
 96}

 97
 98
 99  
100
101 // main.cpp
102
103 //  c++stack.cpp : 定义控制台应用程序的入口点。
104 //
105
106 #include  " stdafx.h "
107 #include  " ListStack.h "
108 #include  < iterator >
109
110 int  _tmain( int  argc, _TCHAR *  argv[])
111 {
112
113    ListStack liststack;
114    int num = 5;
115    while( num --)
116    {
117        char  temp;
118        cout<<"input alphat"<<endl;
119        cin>>temp;
120        liststack.push( temp );
121    }

122    
123      //num =5;
124     //cout<<liststack<<endl;
125    //while(num --)
126    //{
127
128    //   cout<<liststack.pop();
129
130    //}
131    list<char>::iterator beg = liststack.m_ls.begin();
132    list<char>::iterator end = liststack.m_ls.end();
133    for(; beg != end; ++ beg )
134        //cout<<liststack.pop()<<" ";
135        cout<<*beg <<endl;
136    
137    cout<<endl;
138    return 0;
139}

140
141
142
143

你可能感兴趣的:(一个简单的listStack)