赞
踩
#include <iostream> using namespace std; struct Node //定义队列的节点 { Node *next; double data; }; struct Queue //定义队列的数据结构 { Node *front; Node *rear; }; void Initqueue(Queue &queue) //初始化一个空队列 { Node *p; p = new Node; p->next = NULL; //队首 queue.front = p; queue.rear = p; } void Pushqueue(Queue &queue, double a) { Node *p; p = new Node; p->next = NULL; p->data = a; queue.rear->next = p; queue.rear = p; } void Popqueue(Queue &queue, double &a) { Node *p; p = queue.front->next; //p指向将要删除的节点 a = p->data; queue.front->next = p->next; //将中间节点丢掉 if (p == queue.rear) queue.rear = queue.front; delete p; } int Isempty(Queue &queue) { if (queue.front == queue.rear) { return 0; } else { return 1; } } void Deletequeue(Queue &queue) { while (queue.front) { queue.rear = queue.front; delete queue.front; queue.front = queue.rear; } } int main() { Queue *queue1; queue1 = new Queue; Initqueue(*queue1); double a, x = 0; cout << "please input an data,if data==-1:--end--" << endl; cin >> a; while (a != -1) { Pushqueue(*queue1, a); cout << "please input an data,if data==-1:--end--" << endl; cin >> a; } Node *p, *q; p = queue1->front->next; q = p; if (p == NULL) { cout << "队列为空" << endl; return 0; } cout << "All elements" << endl; while (p != NULL) { cout << p->data << " "; p = p->next; } cout << endl; while (Isempty) { Popqueue(*queue1, x); cout << "deleting" << x << endl; } Deletequeue(*queue1); delete queue1->front; delete queue1; system("pause"); return 0; }
另外还有☟☟
用类实现链队列/顺序表
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。