48 lines
986 B
C
48 lines
986 B
C
#ident "$Header: "
|
|
|
|
/* Node structure for use in hierarchical trees (htrees).
|
|
*/
|
|
typedef struct htnode_s {
|
|
struct htnode_s *next;
|
|
struct htnode_s *prev;
|
|
struct htnode_s *parent;
|
|
struct htnode_s *children;
|
|
int seq;
|
|
int level;
|
|
int key;
|
|
} htnode_t;
|
|
|
|
/** Flag values
|
|
**/
|
|
#define HT_BEFORE 0x1
|
|
#define HT_AFTER 0x2
|
|
#define HT_CHILD 0x4
|
|
#define HT_PEER 0x8
|
|
|
|
/** Function prototypes
|
|
**/
|
|
htnode_t *next_htnode(
|
|
htnode_t * /* htnode pointer */);
|
|
|
|
htnode_t *prev_htnode(
|
|
htnode_t * /* htnode pointer */);
|
|
|
|
void ht_insert_peer(
|
|
htnode_t * /* htnode pointer */,
|
|
htnode_t * /* new htnode pointer*/,
|
|
int /* flags */);
|
|
|
|
void ht_insert_child(
|
|
htnode_t * /* htnode pointer */,
|
|
htnode_t * /* new htnode pointer*/,
|
|
int /* flags */);
|
|
|
|
int ht_insert(
|
|
htnode_t * /* htnode pointer */,
|
|
htnode_t * /* new htnode pointer*/,
|
|
int /* flags */);
|
|
|
|
void ht_insert_next_htnode(
|
|
htnode_t * /* htnode pointer */,
|
|
htnode_t * /* new htnode pointer*/);
|