home *** CD-ROM | disk | FTP | other *** search
- #ifndef __DOUBLE_H
- #define __DOUBLE_H
-
- // ╔════════════════════════════════════════════════╗
- // ║ double.h, double.cpp ║
- // ╟────────────────────────────────────────────────╢
- // ║ doubly-linked list ║
- // ╟────────────────────────────────────────────────╢
- // ║ Written by Gus Smedstad ║
- // ╟────────────────────────────────────────────────╢
- // ║ Copyright 1990-91 NoGate Consulting ║
- // ╚════════════════════════════════════════════════╝
- #ifndef __ABSLIST_H
- #include "abslist.h"
- #endif
-
- class double_node : public link_node {
- public:
- double_node *last;
- double_node(containable *arg = NULL);
- };
-
- class double_list : public abstract_list {
- friend double_index;
- protected:
- double_node *tail;
- public:
- double_list();
- virtual void put(containable *arg);
- virtual void destroy();
- containable *remove(containable *arg);
- };
-
- class double_index : public abstract_index {
- friend double_list;
- double_node *node() { return (double_node *) data; };
- double_node *next_node() { return (double_node *) node()->next; };
- double_list *d_list() { return (double_list *) list; };
- public:
- double_index(double_list & base) : abstract_index(base) {};
- void to_end();
- void put(containable *arg);
- virtual void destroy();
- virtual void operator -- ( int );
- };
-
- #endif