//双端队列的实现:队列左为端口1,队列右为端口2
#include<iostream>
#include<stdio.h>
#include<math.h>
#define LEN sizeof(struct DQueuelist)
using namespace std;
typedef struct DQueuelist //定义结构体结点
{
int data; //结构体数据域
struct DQueuelist *prior; //结构体前向指针
struct DQueuelist *next; //结构体后向指针
}DQueuelist, *DQueueptr;
typedef struct //定义双端队列
{
DQueueptr front; //头指针,指向链队列头结点
DQueueptr rear; //尾指针,指向链队列最后一个结点
}LinkDQueue;
//函数声明部分
void Error(char *s);
LinkDQueue Creat_DQueuelist(); //错误处理函数
void En_DQueuelist(LinkDQueue &q, int e); //创建双端队列函数
void De_DQueuelist(LinkDQueue &q, int e); //入队函数
void Print_DQueuelist(LinkDQueue &q); //出队函数
int Getlength_DQueuelist(LinkDQueue &q); //计算双端队列长度函数
void Gethead_DQueuelist(LinkDQueue &q, int e); //得到双端队列的端口处的元素
void Destroy_DQueuelist(LinkDQueue &q); //销毁双端队列函数
//函数定义定义
void Error(char *s)
{
cout << s << endl;
exit(1);
}
LinkDQueue Creat_DQueuelist() //创建双端队列
{
DQueuelist *pnew; //初始化双端队列
LinkDQueue head;
head.front = head.rear = (struct DQueuelist *)malloc(LEN); //创建头结点
head.front->data = 0;
head.front->next = NULL;
head.rear->next =