📄 linked queue.cpp
字号:
#include "linked queue.h"
#include "node.h"
Linkedqueue::Linkedqueue()
{
front=NULL;
}
/****************************************************/
Error_code Linkedqueue::append(const Queue_entry &item)
{
Node *new_rear=new Node(item);
if (new_rear==NULL)
{
return overflow;
}
if (rear==NULL)
{
front=rear=new_rear;
}
else
{
rear->next=new_rear;
rear=new_rear;
}
return success;
}
/****************************************************/
Error_code Linkedqueue::serve()
{
if (front==NULL)
{
return underflow;
}
Node *old_front=front;
front=old_front->next;
if (front==NULL)
{
rear=NULL;
}
delete old_front;
return success;
}
/****************************************************/
Error_code Linkedqueue::retrieve(Queue_entry &item)const
{
if (front==NULL)
{
return underflow;
}
item=front->entry;
return success;
}
/****************************************************/
bool Linkedqueue::empty()const
{
if (front==NULL)
{
return true;
}
else
{
return false;
}
}
/****************************************************/
Linkedqueue::~Linkedqueue()
{
while (!empty())
{
serve();
}
}
/****************************************************/
Linkedqueue::Linkedqueue(const Linkedqueue &original)
{
Node *new_copy,*original_node=original.front;
if (original_node==NULL)
{
front=NULL;
}
else
{
front=new_copy=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;
}
}
}
/****************************************************/
void Linkedqueue::operator=(const Linkedqueue &original)
{
Node *new_front,*new_copy,*original_node=original.front;
if (original_node==NULL)
{
new_front=NULL;
}
else
{
new_front=new_copy=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())
serve();
front=new_front;
}
/*****************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -