博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构 - 双链表(C++)
阅读量:6423 次
发布时间:2019-06-23

本文共 1297 字,大约阅读时间需要 4 分钟。

// ------DoublyLinkedList.h------template 
class DNode{private: // 指向左、右结点的指针 DNode
* left; DNode
* right;public: // data为公有成员 T data; // 构造函数 DNode(void); DNode(const T& item); // 改变表的方法 void InsertRight(DNode
* p); void InsertLeft(DNode
* p); DNode
* DeleteNode(void); // 取得指向左、右结点的指针 DNode
* NextNodeRight(void) const; DNode
* NextNodeLeft(void) const;};
// ------DoublyLinkedList.cpp------#include "DoublyLinkedList.h"// 构造函数,创建一个空表,并初始化其data域template 
DNode
::DNode(const T& item){ // 建立一个指向自身的结点并初始化data域 left = right = this; data = item;}// 将结点p插入到双向链表中当前结点右边template
void DNode
::InsertRight(DNode
* p){ // 将p和当前结点的右后继结点相连 p->right = right; right->left = p; // 将p的左边和当前结点相连 p->left = this; right = p;}// 将结点p插入到当前结点左边template
void DNode
::InsertLeft(DNode
* p){ // 将p和当前结点的左后继结点相连 p->left = left; left->right = p; // 将p的右边与当前结点相连 p->right = this; left = p;}// 从链表中删除当前结点并返回其地址template
DNode
* DNode
::DeleteNode(void){ // 将左结点的右指针指向右结点 left->right = right; // 将右结点的左指针指向左结点 right->left = left; // 返回当前节点指针 return this;}

版权声明:本文博主原创文章。博客,未经同意不得转载。

你可能感兴趣的文章