#include<iostream>
using namespace std;
typedef struct student
{
int data;
student *next;
}node;
typedef struct linkQueue
{
node *first;
node *rear;
}queue;
queue* insert_queue(queue* HQ, int x)
{
node *s;
s = new node;
s->data = x;
if (NULL == HQ->rear)
{
HQ->rear = s;
HQ->first = s;
HQ->rear->next = NULL;
}
else
{
HQ->rear->next = s;
HQ->rear = s;
}
return HQ;
}
queue *dequeue(queue* HQ)
{
node *p;
int x;
if (NULL == HQ->first)
{
cout<<"The queue is empty!"<<endl;
}
else
{
x= HQ->first->data;
p = HQ->first;
if (HQ->first == HQ->rear)
{
HQ->first = NULL;
HQ->rear = NULL;
//delete p;
}
else
{
HQ->first = HQ->first->next;
delete p;
}
}
return HQ;
}
int length(queue *HQ)
{
node *p;
int length_queue;
p = HQ->first;
while (p != NULL)
{
p = p->next;
length_queue++;
}
cout<<"The length of the queue is:"<<length_queue<<endl;
return length_queue;
}
void print(queue* HQ)
{
node* p;
p = HQ->first;
cout<<"The print result of the queue is that: "<<endl;
while (p != HQ->rear->next)
{
cout<<p->data<<" ";
p = p->next;
}
cout<<endl;
}
int main()
{
queue *HQ;
HQ = new queue;
HQ->first = NULL;
HQ->rear = NULL;
//HQ->rear->next = NULL;
queue *result_insert[2], *result_delete;
result_insert[0] = insert_queue(HQ, 1);
result_insert[1] = insert_queue(result_insert[0], 2);
print(result_insert[1]);
result_delete = dequeue(result_insert[1]);
print(result_delete);
return 0;
}
队列(插入、删除、求长、打印)
最新推荐文章于 2022-10-05 12:15:47 发布