From f6fb7efbdde6322e2d1685313bad3e1b1256d8d9 Mon Sep 17 00:00:00 2001 From: goodale Date: Mon, 4 Jun 2001 17:22:14 +0000 Subject: Adding key to argument lists of functions called during a traversal of the tree. Tom git-svn-id: http://svn.cactuscode.org/flesh/trunk@2216 17b73243-c579-4c4c-a9d2-2d5706c11dac --- src/include/SKBinTree.h | 10 ++++++---- src/util/SKBinTree.c | 16 ++++++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/include/SKBinTree.h b/src/include/SKBinTree.h index f4775e5a..9b42e4e2 100644 --- a/src/include/SKBinTree.h +++ b/src/include/SKBinTree.h @@ -31,18 +31,20 @@ t_sktree *SKTreeStoreData(t_sktree *root, const char *key, void *data); -int SKTreeTraverseInorder(t_sktree *root, int (*process)(void *, void *), void *info); +int SKTreeTraverseInorder(t_sktree *root, int (*process)(const char *,void *, void *), void *info); -int SKTreeTraversePreorder(t_sktree *root, int (*process)(void *, void *), void *info); +int SKTreeTraversePreorder(t_sktree *root, int (*process)(const char *,void *, void *), void *info); -int SKTreeTraversePostorder(t_sktree *root, int (*process)(void *, void *), void *info); +int SKTreeTraversePostorder(t_sktree *root, int (*process)(const char *,void *, void *), void *info); -void SKTreePrintNodes(t_sktree *root, int depth, void (*print_node)(void *, int)); +void SKTreePrintNodes(t_sktree *root, int depth, void (*print_node)(const char *,void *, int)); t_sktree *SKTreeFindNode(t_sktree *root, const char *key); t_sktree *SKTreeFindFirst(t_sktree *root); +void SKTreeDebugNodes(t_sktree *root, int depth); + #ifdef _cplusplus } #endif diff --git a/src/util/SKBinTree.c b/src/util/SKBinTree.c index 2e29482f..70f95c8b 100644 --- a/src/util/SKBinTree.c +++ b/src/util/SKBinTree.c @@ -129,7 +129,7 @@ t_sktree *SKTreeStoreData(t_sktree *root, t_sktree *subtree, @endhistory @@*/ -int SKTreeTraverseInorder(t_sktree *root, int (*process)(void *, void *), void *info) +int SKTreeTraverseInorder(t_sktree *root, int (*process)(const char *, void *, void *), void *info) { int terminate; @@ -138,7 +138,7 @@ int SKTreeTraverseInorder(t_sktree *root, int (*process)(void *, void *), void * if(root) { terminate = SKTreeTraverseInorder(root->left, process, info); - if(!terminate) terminate = process(root->data,info); + if(!terminate) terminate = process(root->key,root->data,info); if(!terminate) terminate = SKTreeTraverseInorder(root->right, process, info); } @@ -159,7 +159,7 @@ int SKTreeTraverseInorder(t_sktree *root, int (*process)(void *, void *), void * @endhistory @@*/ -int SKTreeTraversePreorder(t_sktree *root, int (*process)(void *, void *), void *info) +int SKTreeTraversePreorder(t_sktree *root, int (*process)(const char *,void *, void *), void *info) { int terminate; @@ -167,7 +167,7 @@ int SKTreeTraversePreorder(t_sktree *root, int (*process)(void *, void *), void if(root) { - terminate = process(root->data, info); + terminate = process(root->key,root->data, info); if(!terminate) terminate = SKTreeTraversePreorder(root->left, process, info); if(!terminate) terminate = SKTreeTraversePreorder(root->right, process,info); } @@ -189,7 +189,7 @@ int SKTreeTraversePreorder(t_sktree *root, int (*process)(void *, void *), void @endhistory @@*/ -int SKTreeTraversePostorder(t_sktree *root, int (*process)(void *, void *), void *info) +int SKTreeTraversePostorder(t_sktree *root, int (*process)(const char *, void *, void *), void *info) { int terminate; @@ -199,7 +199,7 @@ int SKTreeTraversePostorder(t_sktree *root, int (*process)(void *, void *), void { terminate = SKTreeTraversePostorder(root->left, process, info); if(!terminate) terminate = SKTreeTraversePostorder(root->right, process, info); - if(!terminate) terminate = process(root->data, info); + if(!terminate) terminate = process(root->key,root->data, info); } return terminate; @@ -219,12 +219,12 @@ int SKTreeTraversePostorder(t_sktree *root, int (*process)(void *, void *), void @endhistory @@*/ -void SKTreePrintNodes(t_sktree *root, int depth, void (*print_node)(void *, int)) +void SKTreePrintNodes(t_sktree *root, int depth, void (*print_node)(const char *,void *, int)) { if(root) { SKTreePrintNodes(root->left, depth+1,print_node); - print_node(root->data,depth); + print_node(root->key,root->data,depth); SKTreePrintNodes(root->right, depth+1, print_node); } } -- cgit v1.2.3