Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

563685 views
1
#ifdef __cplusplus
2
extern "C" {
3
#endif
4
5
6
7
#ifndef _BAUM_H
8
#define _BAUM_H
9
10
#include "list.h"
11
12
#define TREE_HEAD(name) \
13
struct tree_node name = {&name, \
14
{ NULL, NULL}, \
15
{&name.children, &name.children} \
16
}
17
18
#define INIT_TREE_HEAD(ptr) do { \
19
(ptr)->parent = (ptr); \
20
INIT_LIST_HEAD(&(ptr)->children); \
21
} while(0);
22
23
struct tree_node{
24
struct tree_node *parent;
25
struct list_head node;
26
struct list_head children;
27
};
28
29
#define tree_entry(ptr, type, member) \
30
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
31
32
#define child_entry(ptr, type, member) \
33
tree_entry(list_entry(ptr, struct tree_node, node), type, member)
34
35
#define first_child(root, member) \
36
(root)->member.children.next
37
38
#if 0
39
struct tree_node {
40
struct tree_node *parent;
41
struct tree_node *prev, *next;
42
struct tree_node *head_prev, *head_next;
43
struct my_funny_data_struct data;
44
}
45
#endif
46
47
void delete_tree_node(struct tree_node *old);
48
void insert_tree_node(struct tree_node *parent, struct tree_node *new);
49
50
#endif
51
52
53
#ifdef __cplusplus
54
}
55
#endif
56
57
58