C++实现队列
来源:互联网 发布:存储过程动态sql 编辑:程序博客网 时间:2024/06/16 20:13
#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();}