//实现栈类//逆序输出26个字母//2006 05 13#include <iostream.h>#include<string>class Node{public: char data; Node *next;};class Stack:public Node{ Node *Bottom; Node *Top; int SLen;public: void InitStack(); char Pop(); void Push(char e); bool StackEmpty();};void Stack::InitStack(){ Top=new Node; Bottom=Top; SLen=0;}char Stack::Pop(){ char e; Node *p; if(!(Top->next)) exit(0); else { p=Top; e=p->data; Top=p->next; delete p; SLen--; } return e;}void Stack::Push(char e){ Node* p=new Node; p->next=Top; p->data=e; Top=p; SLen++;}bool Stack::StackEmpty(){ if(SLen==0) return 1; else return 0;}void main(){ Stack s; s.InitStack(); for(char i='A';i<='Z';i++) s.Push(i); for(i='A';i<='Z';i++) cout<<s.Pop()<<endl;}

评论