数据结构-双端队列的链式存储与实现(C++)

本文介绍了如何使用C++通过双链表实现双端队列,详细阐述了双端队列的链式存储结构,并提供了deque.h和deque.cpp的代码示例。
摘要由CSDN通过智能技术生成

使用双链表实现双端队列


采用链表实现队列的好处是较为节省空间,便于增删元素。但是难于遍历。

双端队列是在队列两端都可以进行出队、入队操作的队列。

下面是双链表实现双端队列的代码。

deque.h

#pragma once

//双端队列的链式存储C++实现
//2020.01.21

//记录:可运行,插入删除操作没有问题,但是没有写自定义的插入删除操作,待后续可完成

#include <iostream>

using namespace std;

template<typename T>
class Node {
   
private:
	T element;
	Node<T>* pre_node;
	Node<T>* next_node;
public:
	
	Node();			//构造函数
	Node(T e);		//构造函数重载
	T retrieve();	//获取结点数据
	Node<T>* pre();	//获取前指针
	void setpre(Node<T>* node);	//设置前指针
	Node<T>* next();//获取后指针
	void setnext(Node<T>* node);	//设置后指针
	template<class Type>
	friend class Deque;
};

template<typename T>
inline Node<T>::Node() {
   
	element = 0;
	pre_node = NULL;
	next_node = NULL;
}

template<typename T>
inline Node<T>::Node(T e) {
   
	element = e;
	pre_node = NULL;
	next_node = NULL;
}

template<typename T>
inline T Node<T>::retrieve() {
   
	return element;
}

template<typename T>
inline Node<T>* Node<T>::pre() {
   
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值