📄 linked stack.cpp
字号:
#include "linked stack.h"
#include "node.h"
Error_code Linkedstack::push(const Stack_entry & item)
{
Error_code outcome=success;
Node *new_top=new Node(item,top_node);
if (new_top==NULL)
{
return outcome=overflow;
}
top_node=new_top;
return outcome;
}
/***********************************************/
Error_code Linkedstack::pop()
{
Error_code outcome=success;
Node *old_top=top_node;
if (top_node==NULL)
{
return outcome=underflow;
}
top_node=old_top->next;
delete old_top;
return outcome;
}
/************************************************/
bool Linkedstack::empty()const
{
bool outcome=true;
if (top_node!=NULL)
{
outcome=false;
}
return outcome;
}
/************************************************/
Error_code Linkedstack::top(Stack_entry & item)const
{
Error_code outcome=success;
if (top_node==NULL)
{
outcome=underflow;
}
else
item=top_node->entry;
}
/************************************************/
void Linkedstack::operator=(const Linkedstack & original)
{
Node *new_top,*new_copy,*original_node=original.top_node;
if (original_node==NULL)
{
new_top=NULL;
}
else
{
new_copy=new_top=new Node(original_node->entry);
while(original_node->next!=NULL)
{
original_node=original_node->next;
new_copy->next=new Node(original_node->entry);
new_copy=new_copy->next;
}
}
while (!empty())
pop();
top_node=new_top;
}
/***********************************************/
Linkedstack::~Linkedstack()
{
while(!empty())
{
pop();
}
}
/***********************************************/
Linkedstack::Linkedstack(const Linkedstack & original)
{
Node *new_copy,*original_node=original.top_node;
if (original_node==NULL)
{
top_node=NULL;
}
else
{
top_node=new_copy=new Node(original_node->entry);
while (original_node->next!=NULL)
{
original_node=original_node->next;
new_copy=new_copy->next;
}
}
}
/***********************************************/
Linkedstack::Linkedstack()
{
top_node=NULL;
}
/***********************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -