c语言:用双向链表实现双端队列(队列两端都可以进行入队出队操作)

//双端队列的实现:队列左为端口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 =
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值