数据结构--队列
来源:互联网 发布:淘宝开店怎么开 编辑:程序博客网 时间:2024/04/30 13:29
// queue.cpp : Defines the entry point for the console application./*-----CODE FOR FUN----------------------CREATED BY Dream_Whui---------2015-1-25--------------------*/#include "stdafx.h"#include <stdlib.h>#include <iostream>using namespace std;#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -2#define INFEASIBLE -1#define QElemType char //定义队列元素的类型typedef struct QNode//定义结点的结构{ QElemType data; QNode *next;}QNode,*QueuePtr;typedef struct LinkQueue//定义队列结构{ QueuePtr front; QueuePtr rear;}LinkQueue;int InitQueue(LinkQueue &Q)//初始化队列{ Q.front = (QueuePtr)malloc(sizeof(QNode)); if(!Q.front) return ERROR; Q.rear = Q.front; Q.front->next = NULL; return OK;}int DestroyQueue(LinkQueue &Q)//销毁队列{ while(Q.front) { Q.rear = Q.front->next; free (Q.front); Q.front = Q.rear; } return OK;}int InsertQueue(LinkQueue &Q, QElemType e)//在对尾插入元素{ QueuePtr p = (QueuePtr)malloc(sizeof(QNode)); if(!p) return ERROR; p->data = e; p->next = NULL; Q.rear->next = p; Q.rear = p; return OK;}int DeleteQueue(LinkQueue &Q, QElemType &e)//在对头删除元素{ if(Q.front == Q.rear) return ERROR; QueuePtr p = (QueuePtr)malloc(sizeof(QNode)); if(!p) return ERROR; p = Q.front->next; e = p->data; Q.front->next = p->next; if(Q.rear == p) Q.rear = Q.front; free(p); return OK;}int QueueEmpty(LinkQueue &Q)//判断队列是否空{ if(Q.front == Q.rear) return OK; else return ERROR;}int QueueLength(LinkQueue &Q)//队列的长度{ QueuePtr p = Q.front; int num = 0; while(p != Q.rear) { num++; p = p->next; } return num;}QElemType GetHead(LinkQueue &Q, QElemType &e)//获取对头元素{ if(!QueueEmpty(Q)) return e = Q.front->next->data; else return ERROR;}int main(int argc, char* argv[]){ LinkQueue Q; InitQueue(Q); InsertQueue(Q,'W'); InsertQueue(Q,'A'); InsertQueue(Q,'D'); InsertQueue(Q,'F'); QueuePtr p = Q.front; cout<<QueueLength(Q)<<endl;; while(p != Q.rear) { cout<<p->next->data<<" "; p = p->next; } cout<<endl; char e; DeleteQueue(Q,e); cout<<e<<endl; p = Q.front; while(p != Q.rear) { cout<<p->next->data<<" "; p = p->next; } cout<<endl; GetHead(Q,e); cout<<e<<endl; return 0;}
0 0
- 数据结构---队列
- 数据结构--队列
- 数据结构队列
- 数据结构---队列
- 数据结构(队列)
- 数据结构-队列
- 数据结构---->队列
- 数据结构---队列
- 【数据结构】队列
- 数据结构--队列
- 【数据结构】 队列
- 数据结构 -- 队列
- 数据结构--队列
- 数据结构:队列
- 数据结构 队列
- 数据结构----队列
- 数据结构----队列
- 数据结构-队列
- Android 锁屏判断
- Fragment---Fragment真正的完全解析(下)
- 1006. Sign In and Sign Out (25)
- 第25题 查找连续数字串
- eclipse tomcat部署问题, eclipse web tools platform
- 数据结构--队列
- 蓝桥杯 历届试题 约数倍数选卡片 求大神指点 首先声明,我的代码有问题,!不喜勿进,若有意向,可以讨论,我百度不到这道题的题解
- matlab 矩阵操作
- 转载:KSM (内存管理合并相同页)
- c字符串转换函数分析
- [NIPS2014]Do Deep Nets Really Need to be Deep?
- 栈中数组和指针区别
- 读取web.xml参数,jsp动作指令,jsp页面发布xml或者pdf数据
- MongoDB介绍及下载与安装