home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD1.bin
/
new
/
util
/
edit
/
jade
/
src
/
lists.h
< prev
next >
Wrap
C/C++ Source or Header
|
1994-04-28
|
2KB
|
55 lines
/* lists.h -- Amiga-style doubly-linked lists
Copyright (C) 1993, 1994 John Harper <jsh@ukc.ac.uk>
This file is part of Jade.
Jade is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
Jade is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Jade; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef _LISTS_H
#define _LISTS_H
struct Node {
struct Node *ln_Succ;
struct Node *ln_Pred;
char *ln_Name;
/* Don't need the rest. */
};
struct MinNode {
struct MinNode *mln_Succ;
struct MinNode *mln_Pred;
};
struct List {
struct Node *lh_Head;
struct Node *lh_Tail;
struct Node *lh_TailPred;
};
struct MinList {
struct MinNode *mlh_Head;
struct MinNode *mlh_Tail;
struct MinNode *mlh_TailPred;
};
#define IsListEmpty(l) (((l)->lh_TailPred) == (struct Node *)(l))
void NewList(struct List *);
void AddTail(struct List *, struct Node *);
void Insert(struct List *, struct Node *, struct Node *);
void Remove(struct Node *);
#endif /* _LISTS_H */