Queue Operator

原创 2007年09月29日 12:31:00

Simple Queue Operator

#include <iostream.h>
#include <stdio.h>
#include <malloc.h>
typedef struct student{
 int data;
 struct student *next;
}SNode;
typedef struct linkqueue{
 struct student *front,*rear;
}LQueue;

bool InitLQueue(LQueue &LQ){
 LQ.front=(SNode *)malloc(sizeof(SNode));
 if(!LQ.front) return false;
 LQ.rear=LQ.front;
 LQ.front->next=NULL;
 return true;
}
bool InsertQueue(LQueue &LQ,int x){
 SNode *s;
 s=(SNode*)malloc(sizeof(SNode));
 if(!s) return false;
 s->data=x;
 s->next=NULL;
 LQ.rear->next=s;
 LQ.rear=s;
 return true;
}
bool DeQueue(LQueue &LQ, int &e){
 if(LQ.front == LQ.rear) return false;
 SNode * s=LQ.front->next;
    e=s->data;
 LQ.front->next=s->next;
 if(LQ.rear==s) LQ.rear=LQ.front;
 free(s);
 return true;
}
int GetLengthLQ(SNode *LN){
 int n=0;
 SNode *p=LN;
 while(p)
 {
  p=p->next;
  n++;
 }
 return n;
}
void DisplayLQ(LQueue &LQ){
 SNode *p=LQ.front->next;
 while(p){
  printf("%d/n",p->data);
  p=p->next;
 }
}

-------------------------------------------------------------------------------------------------------------------

Loop  Queue Operator

#include <stdio.h>
#include <malloc.h>
#define MAXQSIZE 6
typedef struct {
 int *base;
 int front;
 int rear;
}LSQueue;

bool InitQueue(LSQueue &Q){
 Q.base= (int *) malloc (MAXQSIZE*sizeof(int));
 if(!Q.base)return false;
 Q.front=Q.rear=0;
 return true;
}
bool EnQueue(LSQueue &Q,int e){
 if((Q.rear+1)%MAXQSIZE == Q.front)return false;
 Q.base[Q.rear]=e;
 Q.rear= (Q.rear+1)% MAXQSIZE;
 return true;
}
bool DeQueue(LSQueue &Q,int &e){
 if(Q.front == Q.rear) return false;
 e=Q.base[Q.front];
 Q.front=(Q.front+1)%MAXQSIZE;
 return true;
}
void DisplayLSQ(LSQueue &Q){
 LSQueue p =Q;
 while(p.front != p.rear){
  printf("%d/n",p.base[p.front]);
  p.front = (p.front +1)%MAXQSIZE;
 }
}

priority_queue的使用:简单类型与结构体

# include # include using namespace std; struct NODE { int i,j; friend bool operator > (con...
  • mmc2015
  • mmc2015
  • 2016年01月08日 20:48
  • 883

C++/C++11中std::priority_queue的使用

C++/C++11中std::priority_queue的使用
  • fengbingchun
  • fengbingchun
  • 2017年04月23日 16:08
  • 1937

C++ 类的重载运算符和priority_queue综合使用

今天在写poj上的一道题时,提交之后显示代码运行超时,查了一下网上都说因为测试数据量大,普通循环查找很容易超时,用优先队列能解决问题,有时题目里设计到的状态信息比较复杂,要用一个类来维护,类的重载运算...
  • Bingtang_blog
  • Bingtang_blog
  • 2016年10月06日 16:42
  • 815

C++之Queue容器初学

Queue简介 ² queue是队列容器,是一种“先进先出”的容器。 ² queue是简单地装饰deque容器而成为另外的一种容器。 ² #include   queue对象的默认构造 q...
  • sum_TW
  • sum_TW
  • 2017年02月13日 23:54
  • 2014

关于最小堆以及priority_queue

今天刷题用到了最小堆,想直接用STL库去实现,无奈用得少,不太熟练,现在把刚学到的列在这儿。 最小堆(最大堆)可以有两种实现方法:vector和priority_queue,不过两种的底层实现是一样...
  • xiatianhappy
  • xiatianhappy
  • 2016年04月03日 16:48
  • 1424

c++通过指针实现队列

这篇博文里面说的是c++中通过指针来实现队列,本身思想是很简单的,也没有什么太多需要说的,只需要注意一些细节的问题,其实,我想说的是,作为面向对象,我们应该从调用类中存在的方法去思考我们应该定义哪些变...
  • justperseve
  • justperseve
  • 2016年05月21日 16:58
  • 1544

operator关键字(重载操作符)

operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。  这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解: 一方面要使...
  • DaveBobo
  • DaveBobo
  • 2016年04月16日 21:58
  • 3562

请谨慎实现operator==操作符函数

请谨慎实现operator==操作符函数在c++中,==操作符是很有用的,但是它的实现也并非想象中的那样容易。本文将围绕一个简单的c++例子程序展开讨论,以便寻求一个简单的解决方法。在开始讲述等于操作...
  • hello_wyq
  • hello_wyq
  • 2007年02月06日 10:01
  • 3105

operator*( )的重载(对于const修饰的成员变量的理解)

一、问题 先来看看下面的程序: class INT { public: INT() { m_i = 20; } int& operator*()const { return m_i;...
  • LookAtTheStars
  • LookAtTheStars
  • 2016年07月03日 16:11
  • 1216

C++那些细节--中operator=相关问题

C++中关于operator=的相关知识整理,涉及深拷贝浅拷贝,以及一些拷贝构造函数的知识...
  • puppet_master
  • puppet_master
  • 2015年07月23日 14:09
  • 6041
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Queue Operator
举报原因:
原因补充:

(最多只允许输入30个字)