1 / 5
文档名称:

数据结构优先队列链表实现.doc

格式:doc   大小:84KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构优先队列链表实现.doc

上传人:ipod0a 2018/5/27 文件大小:84 KB

下载得到文件列表

数据结构优先队列链表实现.doc

文档介绍

文档介绍:链表实现
代码:
#include <iostream>
using namespace std;
const int SIZE=50;
class Node
{
public:
Node(){pre=NULL;next=NULL;}
int value;
Node *pre;
Node *next;
};
class PQueue
{
public:
PQueue();
bool empty() const;
bool full() const;
void pop();
void push(int p);
int size() const;
Node * top();
void display();
private:
Node *front,*back;
int count;
};
PQueue::PQueue()
{
front=NULL;
back=NULL;
count=0;
}
bool PQueue::empty() const
{
if(front==NULL)
return true;
else
return false;
}
void PQueue::pop()
{
if(empty())
cout<<"队列为空!"<<endl;
else if(count==1)
{
front=NULL;
count--;
}
else
{
Node* p, * t;
p=top();
if(p==front)
{
t=front->next;
t->pre=NULL;
front=t;
}
else
{
p->pre->next=p->next;
p->next->pre = p->pre;
}
count--;

}
}
void PQueue::push(int p)
{
if(empty())
{
Node *newNode1=new Node();
newNode1->value=p;
front=newNode1;
Node *newNode2=new Node();
newNode2->pre=front;
back=newNode2;
front->next=newNode2;
count++;
}
else
{
Node *newNode=new Node();
back->value=p;
newNode->pre=back;
back->next=newNode;
back=newNode;
count++;
}
}
int PQueue:: size() const
{
return count;
}
Node * PQueue:: top()
{
Node *max=front;
Node *temp=front;
while(temp->next!=NULL)
{
if(temp->value>max->value)
max=temp;