📄 slist.h
字号:
#include<assert.h>
class queue;
class queuenode{
friend class queue;
private:
char data;
queuenode * link;
queuenode (char d=0,queuenode * l=NULL): data(d),link(l){}
};
class queue{
public:
queue():rear(NULL),front(NULL){};
~queue();
void enqueue( char &item);
char dequeue();
void del(char item);
void display();
int find(char item);
int isempty(){return front==NULL;}
private:
queuenode *front,*rear;
};
queue::~queue(){
queuenode * p;
while(front!=NULL){
p=front;front=front->link;delete p;
}
}
void queue::enqueue(char &item){
if(front==NULL)front=rear=new queuenode(item,NULL);
else rear=rear->link=new queuenode(item,NULL);
}
char queue::dequeue(){
queuenode *p=front;
char f=p->data;front=front->link;
delete p;
return f;
}
void queue::display(){
queuenode *p;
p=front;
while(p!=NULL)
{ cout<<p->data<<"->";
p=p->link;
}
cout<<"NULL";
}
queue::find(char item)
{ queuenode *w;
w=front;
M:while(w!=NULL)
{
if(item==w->data)
{ return 1;break;
}
else
{ w=w->link;
goto M;
}
}
if(w==NULL) return 0;
}
void queue::del( char item)
{ queuenode *q,*b;
q=front;
while(q->data!=item)
{b=q;
q=q->link;
}
if(q==front) {front=front->link; delete q;}
else if(q==rear) {rear=b;rear->link=NULL;delete q;}
else {b->link=q->link; delete q;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -