C++ 双循环链表简单实现
2017-03-30 11:22
453 查看
c++ 双循环链表的部分功能实现
需要功能后续添加
需要功能后续添加
#ifndef DLINKLIST_H #define DLINKLIST_H typedef int Status; #define OK 0; #define ERROR -1; template <typename T> class DLinkList { struct DNode { T date; DNode *prior; DNode *next; }; typedef DNode *DNodePointer; public: DLinkList(); ~DLinkList(); public: void push_back(const T d); void pop(); int size(); void print(); private: DNodePointer head; DNodePointer cur; int length; }; template <typename T> DLinkList<T>::DLinkList() { head = NULL; length = 0; } template <typename T> DLinkList<T>::~DLinkList() { //释放点所有节点 while(head != cur){ DNodePointer src = head; head = head->next; delete src; --length; } if (cur){ delete cur; --length; } } template <typename T> void DLinkList<T>::push_back(const T d) { DNodePointer src = new DNode; src->date = d; if (!head){ head = src; head->next = head->prior = head; } else{ //当前节点的后继连上新节点 cur->next = src; //新节点的前驱连上当前节点 src->prior = cur; //新节点的后继连上头节点 src->next = head; //头节点的前驱连上新节点 head->prior = src; } cur = src; ++length; } template <typename T> void DLinkList<T>::pop(){ if (length){ DNodePointer src = cur->prior; src->next = head; head->prior = src; //删除尾节点 delete cur; --length; if (length){ cur = src; } else{ cur = NULL; head = NULL; } } } template <typename T> int DLinkList<T>::size(){ return length; } template <typename T> void DLinkList<T>::print(){ //利用长度的信息来输出 int number = length; while (number){ cout << head->date << "\t"; head = head->next; --number; } cout << endl; } #endif
相关文章推荐
- (C++版)链表(四)——实现双向循环链表创建、插入、删除等简单操作
- (C++版)链表(四)——实现双向循环链表创建、插入、删除等简单操作
- 简单数据结构之循环链表(C++实现)
- 双向循环链表删除算法的C++程序实现
- 简单实现双向循环链表
- 循环双链表加目录IO实现简单的文件检索
- 一个简单的C++的链表实现(使用类模板)
- 实现一个简单的c++ list容器(含sort排序 链表归并算法实现)
- 双向循环链表插入算法的C++程序实现
- 初学者看过来:简单谈谈 C/C++ 递归的思想,实现,以及和循环的关系。
- 双向循环链表简单实现
- C++实现循环链表
- C++实现数据结构三 双向循环链表
- 双向循环链表的c++ 实现
- 简单单链表C++实现
- 队列(queue)的链表(list)实现及循环数组(circular array)实现 C++实现
- 简单谈谈 C/C++ 递归的思想,实现,以及和循环的关系。
- 伪多态的循环链表C++实现【多类型支持】
- 数据结构学习系列三-单向循环链表(c++实现且应用模板)
- 队列(queue)的链表(list)实现及循环数组(circular array)实现 C++实现