⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 c++写的HuffmanTree。 有建立HuffmanTree并编码功能
💻 H
字号:
#include <iostream>
using namespace std;
#define OK   0;
#define ERROR  1;
typedef  int Status;
typedef int QElemType;
typedef struct QNode{
	QElemType data;
	struct QNode *next;
}QNode,*QueuePtr;
typedef struct{
	QueuePtr front;  //队头指针
	QueuePtr rear;   //队尾指针
}LinkQueue;                     //定义链式列队存储结构
Status InitQueue(LinkQueue &Q)
{
	Q.front=new QNode; if(!Q.front)exit(1);
	Q.rear=Q.front;
	Q.front->next=NULL;                //初始化列队,有头结点
	return OK;
}
Status DestroyQueue(LinkQueue &Q)   //摧毁列队
{
	while(Q.front)
	{
		Q.rear=Q.front->next;
		delete Q.front;
		Q.front=Q.rear;
	}
	return OK;
}
Status EnQueue(LinkQueue &Q,QElemType e)     //入队尾
{
	QueuePtr p;
	p=new QNode;if(!p)exit(1);
	p->data=e;p->next=NULL;
	Q.rear->next=p;
	Q.rear=p;
	return OK;
}
Status DeQueue(LinkQueue &Q,QElemType &e)     //出队
{
	QueuePtr p;
	if(Q.front==Q.rear)return ERROR;
	p=Q.front->next;
	e=p->data;
	Q.front->next=p->next;
	if(Q.rear==p)Q.rear=Q.front;
	delete p;
	return OK;
}
Status ShowQueue(LinkQueue Q)         //显示列队所有成员
{
	QueuePtr p;
	p=Q.front->next;
	if(Q.front==Q.rear)return ERROR;
	while(p!=Q.rear)
	{
		cout<<p->data<<" ";
		p=p->next;
	}
	cout<<p->data<<" ";
	return OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -