实验目的
- 掌握队列的顺序存储结构和链式存储结构
- 实现队列的基本操作,包括队列的建立、入队列、出队列、判断队列是否空等
实验内容
- 完成链队列的建立
- 实现链队列的入队操作
- 实现链队列的出队列操作
- 实现判断链队列是否为空
- 实现销毁链队列
- 自己设计一组数据,模拟入队列,出队列
链表结点结构
typedef struct QNode {
int data;
struct QNode *Next;
} QNode, *QueuePtr;
struct {
QueuePtr front;
QueuePtr rear;
} Ptr;
代码实现
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef int datatype;
typedef struct QNode {
datatype data;
struct QNode* Next;
} QNode, *QueuePtr;
struct {
QueuePtr front = NULL;
QueuePtr rear = NULL;
} Ptr;
QNode* BuyNode(datatype x) {
QNode* newnode = (QNode*)malloc(sizeof(QNode));
if (newnode == NULL) return NULL;
{
newnode->data = x;
newnode->Next = ;
}
newnode;
}
{
head = ();
Ptr.front = head;
Ptr.rear = head;
}
{
QueuePtr pcur = head;
(pcur) {
QueuePtr next = pcur->Next;
(pcur);
pcur = next;
}
}
{
QueuePtr node = (x);
Ptr.rear->Next = node;
Ptr.rear = node;
}
{
QueuePtr del = Ptr.front->Next;
(del == ) ;
{
QueuePtr next = del->Next;
Ptr.front->Next = next;
(del);
del = ;
}
}
{
(Ptr.front->Next == ) ;
;
}
{
(Ptr.front->Next == ) ;
Ptr.front->Next->data;
}
{
count = ;
QueuePtr pcur = Ptr.front->Next;
(pcur) {
count++;
QueuePtr next = pcur->Next;
pcur = pcur->Next;
}
count;
}
{
QueuePtr head = ;
(head);
();
();
();
();
();
();
();
();
cout << << () << endl << endl;
cout << << endl;
(!()) {
cout << () << ;
();
}
cout << endl << endl;
cout << << endl;
(head);
cout << << ();
;
}