📄 gistlist.h
字号:
// -*- Mode: C++ -*-//--------------------------------------------------------------------// GiSTlist.h// ----------//// GiST - Generalized Search Tree // June 2001 release, Aalborg University// // This file is a revised version of a part of the original // libGiST release (version 0.9beta1) // Copyright (c) 1996, Regents of the University of California//#ifndef GISTLIST_H#define GISTLIST_H//------------------------------------------------// A template list package, which is handy.template <class T>struct GiSTlistnode{ T entry; GiSTlistnode<T> *prev, *next;};//------------------------------------------------template <class T>class GiSTlist{ public: GiSTlist() { front = rear = NULL; }// GiSTlist(const GiSTlist<T>& l) { front = l.front; rear = l.rear; } int IsEmpty() { return front == NULL; } T RemoveFront() { assert(front != NULL); GiSTlistnode<T> *temp = front; T e = front->entry; front = front->next; if (front) front->prev = NULL; else rear = NULL; delete temp; return e; } T RemoveRear() { assert(rear != NULL); GiSTlistnode<T> *temp = rear; T e = rear->entry; rear = rear->prev; if (rear) rear->next = NULL; else front = NULL; delete temp; return e; } void Prepend(T entry) { GiSTlistnode<T> *temp = new GiSTlistnode<T>; temp->entry = entry; temp->next = front; temp->prev = NULL; if (rear == NULL) rear = temp; else front->prev = temp; front = temp; } void Append(T entry) { GiSTlistnode<T> *temp = new GiSTlistnode<T>; temp->entry = entry; temp->prev = rear; temp->next = NULL; if (front == NULL) front = temp; else rear->next = temp; rear = temp; } private: GiSTlistnode<T> *front, *rear;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -