glxhyt

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  15 随笔 :: 0 文章 :: 4 评论 :: 0 Trackbacks
  1//#include "stack.h"
  2
  3#pragma once
  4#include <iostream>
  5
  6using namespace std;
  7class 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
 24class 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
 48Stack::Stack(void)
 49{
 50}

 51
 52Stack::~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>
 64ListStack::ListStack(void)
 65{
 66}

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

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

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

 85ostream& 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
110int _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
posted on 2010-08-19 19:21 郭龙 阅读(248) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理