#include<iostream.h>
struct Node{
int num;
Node *next;
Node *father;
};
class quene{
Node *tail;
Node *head;
public:
quene(); //构造函数不能有返回值
pop();
push();
print();
count();
};
quene::quene()
{
Node *temp=new Node;
if (NULL == temp)
{
cout << "Failed to new the node." << endl;
}
temp->num = NULL;
temp->next = NULL;
temp->father = NULL;
head = temp;
tail = temp;
//return 1; constructors not allowed a return type
}
quene::pop()
{
if(tail==head)
{
cout<<"The Queue is empty"<<endl;
}
else
{
cout<<"Tail`s num"<<tail->num<<endl;
tail->father->next=NULL;
delete tail;
}
}
int quene::push()
{
Node *temp=new Node;
cout<<"Input the num you want to assert"<<endl;
cin>>temp->num;
temp->next=head->next;
if(head->next!=NULL)
{
head->next->father=temp;
}
if(head->next==NULL)
{
tail=temp;
}
head->next=temp;
}
quene::print()
{
Node *p=head->next;
if(p==NULL)
{
cout<<"The quene is empty"<<endl;
}
while(p!=NULL)
{
cout<<p->num<<endl;
p=p->next;
}
}
int quene::count()
{
Node *p=head->next;
if(p==NULL)
{
cout<<"The quene is empty"<<endl;
return 1;
}
else
{
int temp=0;
while(p!=NULL)
{
temp++;
p=p->next;
}
cout<<"The quene is "<<temp<<" long "<<endl;
return 0;
}
}
void main()
{
quene a;
a.push();
a.push();
a.pop();
a.print();
a.push();
a.print();
a.count();
}
C++实现队列
最新推荐文章于 2024-07-23 10:26:26 发布