队列(插入、删除、求长、打印)

来源:互联网 发布:中世纪2优化mod哪个好 编辑:程序博客网 时间:2024/06/08 11:32
#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;}

原创粉丝点击