【数据结构】队列的出队和入队操作

来源:互联网 发布:淘宝订单物流查询 编辑:程序博客网 时间:2024/04/30 02:42

队列的操作规则是先进先出,要注意一下,

1.队列为空

2.队列只有一个元素,即头尾指针都指向空 

3.初始化队列时,分配空间后不要忘记将头为指针置空

// 13_4.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <string.h>#include <conio.h>#include <stdio.h>#include <iostream>using namespace std;typedef struct student{int data;struct student *next;}node;typedef struct linkqueue{node *first, *rear;}queue;queue *insert(queue *HQ, int x){node *p = (node *)malloc(sizeof(node));p->data = x;p->next = NULL;if (NULL == HQ->rear){HQ->first = p;HQ->rear = p;}else{HQ->rear->next = p;HQ->rear = p;}cout << HQ->rear->data << endl;return HQ;}queue *del(queue *HQ){node *p;int x;if (NULL == HQ){cout << "Queue is null!" << endl;}else{p = HQ->first;x = HQ->first->data;if (HQ->first == HQ->rear){HQ->rear = NULL;HQ->rear = NULL;free(p);}else{HQ->first = HQ->first->next;free(p);}cout << x << endl;}return HQ;}int _tmain(int argc, _TCHAR* argv[]){linkqueue *seq = (linkqueue *)malloc(sizeof(linkqueue));seq->rear = NULL;seq->first = NULL;cout << "The inserted seq is: \n" << endl;for (int i = 0; i < 10; i++){seq = insert(seq, i);}cout << "The deleted seq is: \n" << endl;for (int i = 0; i < 10; i++){seq = del(seq);}return 0;}
输出:
The inserted seq is:0123456789The deleted seq is:0123456789请按任意键继续. . .

0 0