📄 dlist.h
字号:
#ifndef __DLIST_H#define __DLIST_Hclass DElement{ friend class DList; private: DList* lst; DElement* prv,* nxt; protected: void unlink(void); public: DElement(void) { lst = 0; prv = nxt = 0; } virtual ~DElement() { unlink(); } DList* list(void) const { return lst; } DElement* prev(void) const { return prv; } DElement* next(void) const { return nxt; }};class DList{ private: DElement* fst,* lst; int cnt; public: DList(void) { cnt = 0; fst = lst = 0; } virtual ~DList() { destroy(); } DElement* first(void) const { return fst; } DElement* last(void) const { return lst; } int count(void) const { return cnt; } virtual int add(DElement*, DElement* next = 0); virtual int sub(DElement*); virtual void destroy(void); DElement* find(int); int find(DElement*);};class DSortList : public DList{ public: DSortList(void) : DList() {} virtual int add(DElement*, DElement* nxt = 0); virtual int cmp(DElement* elem, DElement* nxt) const = 0;};class DIterator{ private: DList* lst; DElement* cur; public: DIterator(DList* _lst = 0) { list(_lst); } void list(DList* _lst) { lst = _lst; if(lst) cur = lst->first(); } DElement* first(void) { if(!lst) return 0; if(!cur) cur = lst->first(); return cur; } DElement* last(void) { if(!lst) return 0; if(!cur) cur = lst->last(); return cur; } DElement* current(void) const { return cur; } DElement* operator++(void) { return cur ? cur = cur->next() : 0; } DElement* operator++(int) { DElement* _cur = cur; if(cur) cur = cur->next(); return _cur; } DElement* operator--(void) { return cur ? cur = cur->prev() : 0; } DElement* operator--(int) { DElement* _cur = cur; if(cur) cur = cur->prev(); return _cur; }};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -