//实现栈类
//逆序输出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;
}
//逆序输出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;
}
评论