#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
class Stack
{
private:
struct StackNode
{
string value;
StackNode* next;
}*top;
public:
Stack()
{
top = new(StackNode);
top->next = NULL;
}
int Push(string value)
{
StackNode* p = new(StackNode);
p->value = value;
p->next = top->next;
top->next = p;
return 1;
}
int Pop(string& value)
{
if (!IsEmpty())
{
value = top->next->value;
StackNode* p = new(StackNode);
p = top->next;
top->next = p->next;
delete(p);
return 1;
}
else
return 0;
}
bool IsEmpty()
{
if (top->next == NULL)
return true;
else
return false;
}
int GetTop(string& value)
{
if (!IsEmpty())
{
value = top->next->value;
return 1;
}
else
return 0;
}
};
int main()
{
string str1,str2;
Stack s;
s.Push("A");
s.Push("B");
s.Push("C");
s.Pop(str1);
s.GetTop(str2);
cout << str1 << endl << str2 << endl;
system("pause");
return 0;
}
[150421][C++]数据结构复习——栈实现源码
最新推荐文章于 2024-09-20 19:40:22 发布