ptrset.h
来自「这个工具集提供以下结构化分析和UML分析中所用的图形化绘图工具:ER-diagr」· C头文件 代码 · 共 60 行
H
60 行
#ifndef _PTRSET_H#define _PTRSET_H#include "bool.h"#include <stddef.h>enum mode { SNext = 0, SPrevious = 1, SExact, SInsert };template <class T> class PtrSet;template <class T> class PtrSetEl { private: PtrSetEl<T> *child[2]; const PtrSetEl<T> *father; T *item; PtrSetEl(T *newitem, const PtrSetEl<T> *f = (const PtrSetEl<T> *) NULL); PtrSetEl(const PtrSetEl<T> ©, const PtrSetEl<T> *f = (const PtrSetEl<T> *) NULL); ~PtrSetEl(); T *search(T *key, mode notfound); void print(int depth); friend class PtrSet<T>;};template <class T> class PtrSet { private: PtrSetEl<T> *root; const PtrSetEl<T> *current; public: PtrSet(); ~PtrSet(); PtrSet(const PtrSet<T> ©); T *search(T *key, mode notfound); bool contains(T *key) { return NULL != search(key, SExact); }; void clear() { if ( NULL != root ) { delete root; root = (PtrSetEl<T> *) NULL; current = (const PtrSetEl<T> *) NULL; } }; bool first(mode dir = SNext); bool last() { return first(SPrevious); }; bool next(mode dir = SNext); bool prev() { return next(SPrevious); }; T *cur() const { return NULL != current ? current->item : (T *) NULL; }; void print();};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?