链式队列C++实现

#include<iostream>
#include<cstdio>
using namespace std;


struct listque
{
listque* next ;
int data ;
};


class Que
{
private:
listque* head ;
public:
Que();
~Que();
bool Qadd(int e);
bool Qdelete(int &e);


};
Que::Que()
{
head = new listque[1];
head ->next = NULL;
}
Que::~Que()
{
delete []head ;
}
bool Que::Qadd(int e)
{


listque* node , *p ;
p = head->next ; 
if(p == NULL)
{
node = new listque[1] ;
node->data = e ;
node->next = p ;
head->next = node ;
return true ;
}
while(p->next != NULL)
{
p = p->next ;
}
node = new listque[1] ;
node->data = e ;
node->next = p->next ;
p->next = node ;
return true ;
// printf("%p\n",p);
}
bool Que::Qdelete(int &e)
{
//    if(head->next == NULL)
//    {
//        return false ;
//    }
    listque* firstNode ;
    firstNode = head->next ; 
    e = firstNode->data ;
    head->next = firstNode->next ;
    delete  []firstNode ;
    return true ;
}
int main()
{
Que lq ;
int a = 0 ;
for(int i = 0; i<10 ;i++)
{
lq.Qadd(i);
}


for(int i = 0 ; i<10 ;i++)
{
lq.Qdelete(a);
cout<<a<<" " ;
}
cout<<endl;
system("pause");
}

猜你喜欢

转载自blog.csdn.net/wx734518351/article/details/80100491