📄 队列.cpp
字号:
#include<iostream.h>
class listnode
{
public:
int data;
listnode *next;
listnode(const int &itemval,listnode *ptr=NULL)
{
data=itemval;
next=ptr;
}
};
class queue//带表头
{
public:
listnode *front;
listnode *rear;
public:
queue(void)
{
listnode *p;
p=new listnode(NULL,NULL);
front=rear=p;
}
void enqueue(int x);//入列操作:ok
int delqueue(void);//出列操作:ok
int getfront(void);//取队头元素:ok
int isempty(void)//判队空:ok
{
if(front==rear) return 1;
else return 0;
}
void clear(void);//清队空:ok
void print(void);//输出队列
};
void queue::enqueue(int x)//在链尾插入结点
{
listnode *p;
p=new listnode(x,NULL);
rear->next=p;
rear=p;
}
int queue::delqueue(void)
{
int x;
listnode *p;
if(front==rear)
{
cout<<"underflow"<<endl;
return 0;
}
p=front->next;
x=p->data;
front->next=p->next;
if(p==rear)
rear=front;
delete p;
return x;
}
int queue::getfront(void)
{
if(front==rear)
{
cout<<"isempty!"<<endl;
return 0;
}
return front->next->data;
}
void queue::clear(void)
{
listnode *p,*q;
q=front->next;
while(q!=rear)
{
p=q;
q=q->next;
delete p;
}
p=q->next;
delete p;
rear=front;
}
void queue::print()
{
listnode *p;
p=front;
while(p!=rear)
{
p=p->next;
cout<<p->data<<" ";
}
}
void main()//测试
{
queue a;
int i,j,k;
cin>>i>>j>>k;
a.enqueue(i);
a.enqueue(j);
cout<<endl<<a.isempty()<<endl;
a.enqueue(k);
a.delqueue();
a.print();
a.delqueue();
a.clear();
a.delqueue();
cout<<endl<<a.isempty()<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -