数据结构 - 双向链表(C++)
来源:互联网 发布:网络销售外汇好开单吗? 编辑:程序博客网 时间:2024/04/27 15:26
// ------DoublyLinkedList.h------template <class T>class DNode{private:// 指向左、右结点的指针DNode<T> * left;DNode<T> * right;public:// data为公有成员T data;// 构造函数DNode(void);DNode(const T& item);// 改变表的方法void InsertRight(DNode<T> * p);void InsertLeft(DNode<T> * p);DNode<T> * DeleteNode(void);// 取得指向左、右结点的指针DNode<T> * NextNodeRight(void) const;DNode<T> * NextNodeLeft(void) const;};
// ------DoublyLinkedList.cpp------#include "DoublyLinkedList.h"// 构造函数,创建一个空表,并初始化其data域template <class T>DNode<T>::DNode(const T& item){// 建立一个指向自身的结点并初始化data域left = right = this;data = item;}// 将结点p插入到双向链表中当前结点右边template <class T>void DNode<T>::InsertRight(DNode<T> * p){// 将p和当前结点的右后继结点相连p->right = right;right->left = p;// 将p的左边和当前结点相连p->left = this;right = p;}// 将结点p插入到当前结点左边template<class T>void DNode<T>::InsertLeft(DNode<T> * p){// 将p和当前结点的左后继结点相连p->left = left;left->right = p;// 将p的右边与当前结点相连p->right = this;left = p;}// 从链表中删除当前结点并返回其地址template <class T>DNode<T> * DNode<T>::DeleteNode(void){// 将左结点的右指针指向右结点left->right = right;// 将右结点的左指针指向左结点right->left = left;// 返回当前结点的指针return this;}
14 0
- 数据结构(C实现)------- 双向链表
- 数据结构 - 双向链表(C++)
- 数据结构(C#)--双向链表
- 数据结构(c#)——双向链表
- 数据结构——双向链表(C语言)
- C语言(数据结构) - 双向链表的基本操作
- 数据结构之双向链表(C语言实现)
- 数据结构与算法(C语言版)__双向链表
- C语言数据结构之双向链表
- C语言数据结构----双向链表
- C实现通用数据结构--双向链表
- 数据结构--双向循环链表C实现
- C 语言 数据结构之双向链表
- C/C++、JAVA 数据结构 :双向循环链表
- 数据结构--双向链表
- 数据结构-双向链表
- 数据结构-----双向链表
- 数据结构-双向链表
- Unix 环境变量详解
- Objective-C Runtime 运行时之五:协议与分类
- ORACLE EXPDP命令使用详细
- 支持FF和IE的回车提交(不使用Submit按钮)
- 持续集成与迭代开发
- 数据结构 - 双向链表(C++)
- 编译OpenSSL
- apt-get -f install 修复依赖损坏
- 第11周项目6.4 oj平台提交
- 在xcode5中修改整个项目名
- centos学习拾零--配置命令
- Objective-C Runtime 运行时之六:拾遗
- c# 播放mp3
- Find Minimum in Rotated Sorted Array 旋转数组中找最小值 @LeetCode