X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Favl_tree.h;h=89384672b1dbe29c541b91a76fba2cc6bb95997b;hp=08bed6b9c057e430133e7ef6b43dcf2878022753;hb=dced64c5c3625f6d2f0674e9fed14455aabc635e;hpb=9f38e394636a177c00a4545de2a99c661de36386 diff --git a/lib/avl_tree.h b/lib/avl_tree.h index 08bed6b9..89384672 100644 --- a/lib/avl_tree.h +++ b/lib/avl_tree.h @@ -1,9 +1,9 @@ /* avl_tree.h -- header file for avl_tree.c Copyright (C) 1998 Michael H. Buselli - 2000,2001 Ivo Timmermans , - 2000,2001 Guus Sliepen - 2000,2001 Wessel Dankers + 2000-2004 Ivo Timmermans , + 2000-2004 Guus Sliepen + 2000-2004 Wessel Dankers This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,15 +21,15 @@ Original AVL tree library by Michael H. Buselli . - Modified 2000-11-28 by Wessel Dankers to use counts + Modified 2000-11-28 by Wessel Dankers to use counts instead of depths, to add the ->next and ->prev and to generally obfuscate the code. Mail me if you found a bug. Cleaned up and incorporated some of the ideas from the red-black tree - library for inclusion into tinc (http://tinc.nl.linux.org/) by - Guus Sliepen . + library for inclusion into tinc (http://www.tinc-vpn.org/) by + Guus Sliepen . - $Id: avl_tree.h,v 1.1.2.6 2002/09/09 21:49:16 guus Exp $ + $Id$ */ @@ -68,9 +68,9 @@ typedef struct avl_node_t { } avl_node_t; -typedef int (*avl_compare_t) (const void *, const void *); -typedef void (*avl_action_t) (const void *); -typedef void (*avl_action_node_t) (const avl_node_t *); +typedef int (*avl_compare_t)(const void *, const void *); +typedef void (*avl_action_t)(const void *); +typedef void (*avl_action_node_t)(const avl_node_t *); typedef struct avl_tree_t { @@ -94,7 +94,7 @@ extern avl_tree_t *avl_alloc_tree(avl_compare_t, avl_action_t); extern void avl_free_tree(avl_tree_t *); extern avl_node_t *avl_alloc_node(void); -extern void avl_free_node(avl_tree_t * tree, avl_node_t *); +extern void avl_free_node(avl_tree_t *tree, avl_node_t *); /* Insertion and deletion */ @@ -106,7 +106,7 @@ extern void avl_insert_before(avl_tree_t *, avl_node_t *, avl_node_t *); extern void avl_insert_after(avl_tree_t *, avl_node_t *, avl_node_t *); extern avl_node_t *avl_unlink(avl_tree_t *, void *); -extern void avl_unlink_node(avl_tree_t * tree, avl_node_t *); +extern void avl_unlink_node(avl_tree_t *tree, avl_node_t *); extern void avl_delete(avl_tree_t *, void *); extern void avl_delete_node(avl_tree_t *, avl_node_t *); @@ -128,18 +128,18 @@ extern avl_node_t *avl_search_closest_greater_node(const avl_tree_t *, const voi /* Tree walking */ -extern void avl_foreach(avl_tree_t *, avl_action_t); -extern void avl_foreach_node(avl_tree_t *, avl_action_t); +extern void avl_foreach(const avl_tree_t *, avl_action_t); +extern void avl_foreach_node(const avl_tree_t *, avl_action_t); /* Indexing */ #ifdef AVL_COUNT -extern unsigned int avl_count(avl_tree_t *); +extern unsigned int avl_count(const avl_tree_t *); extern avl_node_t *avl_get_node(const avl_tree_t *, unsigned int); extern unsigned int avl_index(const avl_node_t *); #endif #ifdef AVL_DEPTH -extern unsigned int avl_depth(avl_tree_t *); +extern unsigned int avl_depth(const avl_tree_t *); #endif #endif /* __AVL_TREE_H__ */