7.12
栈:(代码未全)
#include
#include<stdib.h>
#include"MyLinkStack.h"
using namespace std;
template
class LinkStack
{
struct StackNode
{
Type data;
StackNode* next;
}
private:
StackNode* top;
int cursize;
publice:
LinkStack() : top(NULL), cursize(0)
{
}
~LinkStack()
{
clear();
}
int GetSize()const { return curize; }
bool Is_Empty()const { return GetSize() == 0; }
bool Push(const Typr& val)
{
if (nullptr == s)return false;
new(&s->data)Type(val);
s->next = top;
top = s;
cursize += 1;
return true;
}
Type& GetTop()
{
return top->data;
}
const Type& GetTop()const
{
return top->data;
}
void Pop()
{
if (Is_Empty())return;
StackNode* q = top;
top = q->next;
(&(q->data))->~Type();
free(q);
void Clear()
{
while (!Is_Empty())
{
Pop();
}
}
}
};
int main()
{
LinkStackist;
for (int i = 0; i < 10; ++1)
{
ist.Push(i + 10);
}
while (!ist.Is_Empty())
{
int x = ist.GetTop();
ist.Pop();
cout << x << endl;
}
return 0;
}