队列的操作规则是先进先出,要注意一下,
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: 0 1 2 3 4 5 6 7 8 9 The deleted seq is: 0 1 2 3 4 5 6 7 8 9 请按任意键继续. . .
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。