链队列的建立、判空、入队、出队、求长、访头、清空和销毁
来源:互联网 发布:vb 显示在picturebox 编辑:程序博客网 时间:2024/04/29 03:20
#include<iostream>using namespace std;typedef struct node{int data;struct node *next;}Node;//头指针和尾指针typedef struct{Node *front;Node *rear;}Queue;void initQueue(Queue &Q){Q.front = Q.rear = new Node;Q.front->next = NULL;}bool isEmptyQueue(Queue &Q){if (NULL == Q.front) //此时链队列被销毁{cout << "链队列不存在." << endl;exit(1);}if (Q.rear == Q.front)//此时链队列为空return true;return false;}void enterQueue(Queue &Q, int element){Node *p = new Node;p->next = NULL;p->data = element;Q.rear->next = p;Q.rear = p;}int deQueue(Queue &Q){int outElement;if (isEmptyQueue(Q))exit(1);Node *p = Q.front->next;outElement = p->data;Q.front->next = p->next;if (Q.rear == p) //需要特殊处理Q.rear = Q.front;delete p;return outElement;}int getLength(Queue &Q){Node *p1 = Q.front;Node *p2 = Q.rear;int length = 0;while (p1 != p2){p1 = p1->next;length++;}return length;}int getHead(Queue &Q){if (isEmptyQueue(Q))exit(1);return Q.front->next->data;}void clearQueue(Queue &Q){while (!isEmptyQueue(Q))deQueue(Q);}void destroyQueue(Queue &Q){clearQueue(Q);delete Q.front;Q.front = Q.rear = NULL;}int main(){Queue Q;initQueue(Q);cout << getLength(Q) << endl;int i;for (i = 1; i <= 10; i++)enterQueue(Q, i);cout << getHead(Q) << endl;cout << getLength(Q) << endl;while (!isEmptyQueue(Q))cout << deQueue(Q) << " ";cout << endl;if (isEmptyQueue(Q))cout << "yes" << endl;elsecout << "no" << endl;destroyQueue(Q);if (isEmptyQueue(Q))cout << "yes" << endl;elsecout << "no" << endl;system("pause");return 0;}
0 0
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链队列和循环队列的表示与实现-初始化、判空、求长、入队、出队、遍历、求头、求尾、清队、毁队
- 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁
- 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁
- 链式栈的初始化,判空,进栈,出栈,求长,求顶,打印,清空和销毁
- 队列:出队、入队、销毁、清空等
- 顺序栈的初始化,进栈、出栈、求长、判空、访顶、遍历、清空、销毁
- 链队列、循环队列的实现(初始化、出队、入队、取队头元素、判空)
- c之队列相关操作------初始化,入队,出队,队列清空,销毁,遍历
- 链队列的初始化、出队、入队、取队头元素、判空
- 顺序循环队列基本操作(入队,出队,清空,销毁,历遍)
- 循环顺序队列(初始化、入队、出队、判空)
- 链对列初始化/入队列/出队列/判空
- 链栈初始化、进栈、出栈、判空、遍历、求长、求顶、清栈、毁栈
- 队列 入队,插入,出队,是否队空,队元元素,清空,打印
- 【C++】容器适配器实现队列Queue的各种功能(入队、出队、判空、大小、访问所有元素等)
- 国内外三个不同领域巨头分享的Redis实战经验及使用场景
- 新手笔记之数组排序(一直出错)
- 第一篇博客。
- 关于 hashCode() 你需要了解的 3 件事
- hadoop集群搭建-笔记
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 【HDU2121】【有向图的最下生成树】【无固定跟节点】
- 字符串匹配的KMP算法
- hdu5423
- 使用模板加快编码效率(三)——sublime
- C++ char* str与char str[]
- uva live 6428 A+B(gcd拓展)
- HTTP协议详解
- hdu 5423 Rikka with Tree