1
0
mirror of https://github.com/Didnelpsun/CS408.git synced 2026-02-04 11:24:10 +08:00
Files
CS408/Code/CPP-Code/head/double_link_list.h
2021-09-17 23:27:48 +08:00

100 lines
2.2 KiB
C++

#include "head.h"
// 单链表结点
class DoubleLinkListNode {
private:
// 数据
element_type _data{};
// 指针
DoubleLinkListNode *_prior{}, *_next{};
public:
// 设置数据
bool SetData(element_type elem);
// 获取数据
element_type GetData() const;
// 设置prior
bool SetPrior(DoubleLinkListNode *prior);
// 获取prior
DoubleLinkListNode *GetPrior();
// 设置next
bool SetNext(DoubleLinkListNode *next);
// 获取next
DoubleLinkListNode *GetNext();
// 构造函数
DoubleLinkListNode();
explicit DoubleLinkListNode(element_type elem);
DoubleLinkListNode(element_type elem, DoubleLinkListNode *next);
DoubleLinkListNode(element_type elem, DoubleLinkListNode *prior, DoubleLinkListNode *next);
// 销毁
bool Destory();
};
bool DoubleLinkListNode::SetData(element_type elem) {
this->_data = elem;
return true;
}
element_type DoubleLinkListNode::GetData() const {
return this->_data;
}
bool DoubleLinkListNode::SetPrior(DoubleLinkListNode *prior) {
this->_prior = prior;
return true;
}
DoubleLinkListNode *DoubleLinkListNode::GetPrior() {
return this->_prior;
}
bool DoubleLinkListNode::SetNext(DoubleLinkListNode *next) {
this->_next=next;
return true;
}
DoubleLinkListNode *DoubleLinkListNode::GetNext() {
return this->_next;
}
DoubleLinkListNode::DoubleLinkListNode() {
this->SetPrior(nullptr);
this->SetNext(nullptr);
this->SetData(DEFAULTELEM);
}
DoubleLinkListNode::DoubleLinkListNode(element_type elem) {
this->SetPrior(nullptr);
this->SetNext(nullptr);
this->SetData(elem);
}
DoubleLinkListNode::DoubleLinkListNode(element_type elem, DoubleLinkListNode *next) {
this->SetPrior(nullptr);
this->SetNext(next);
this->SetData(elem);
}
DoubleLinkListNode::DoubleLinkListNode(element_type elem, DoubleLinkListNode *prior, DoubleLinkListNode *next) {
this->SetPrior(prior);
this->SetNext(next);
this->SetData(elem);
}
bool DoubleLinkListNode::Destory() {
free(this->GetPrior());
free(this->GetNext());
this->SetPrior(nullptr);
this->SetNext(nullptr);
this->SetData(DEFAULTELEM);
return true;
}