Path: utzoo!utgpu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!caen!uflorida!travis!brad From: brad@SSD.CSD.HARRIS.COM (Brad Appleton) Newsgroups: alt.sources Subject: AVL tree library (error in previous posting) Message-ID: <2827@travis.csd.harris.com> Date: 28 Mar 91 21:23:59 GMT Sender: news@travis.csd.harris.com Organization: Harris Computers Systems Division, Fort Lauderdale,FL Lines: 109 I tried to hack up avl.h for ANSI-C at the last minute in my previous posting. I did not do it correctly. Here is the corrected version of avl.h (sorry about that). This should replace the previous version of avl.h. #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'avl.h' <<'END_OF_FILE' X/** X* avl.h -- public types and external declarations for avl trees X* X* Created 03/01/89 by Brad Appleton X* X* ^{Mods:* } X* X* Fri Jul 14 13:54:12 1989, Rev 1.0, brad(0165) X* X**/ X X#ifndef AVL_H X#define AVL_H X X#ifdef __STDC__ X# define _P(x) x X#else X# define _P(x) () X#endif X X /* definition of traversal type */ Xtypedef enum { PREORDER, INORDER, POSTORDER } VISIT; X X X /* definition of sibling order type */ Xtypedef enum { LEFT_TO_RIGHT, RIGHT_TO_LEFT } SIBLING_ORDER; X X X /* definition of node type */ Xtypedef enum { IS_TREE, IS_LBRANCH, IS_RBRANCH, IS_LEAF, IS_NULL } NODE; X X X /* definition of opaque type for AVL trees */ Xtypedef void *AVL_TREE; X X X#ifndef NEXTERN X X /* Constructor and Destructor functions for AVL trees: X * avlfree is a macro for avldispose in the fashion X * of free(). It assumes certain default values X * (shown below) for the deallocation function and X * for the order in which children are traversed. X */ Xextern AVL_TREE avlinit _P(( int(*) (), unsigned(*)() )); Xextern void avldispose _P(( AVL_TREE *, void(*) (), SIBLING_ORDER )); X#define avlfree(x) avldispose _P( &(x), free, LEFT_TO_RIGHT ) X X X /* Routine for manipulating/accessing each data item in a tree */ Xextern void avlwalk _P(( AVL_TREE, void(*) (), SIBLING_ORDER )); X X X /* Routine for obtaining the size of an AVL tree */ Xextern int avlcount _P(( AVL_TREE )); X X X /* Routines to search for a given item */ Xextern void *avlins _P(( void *, AVL_TREE )); Xextern void *avldel _P(( void *, AVL_TREE )); Xextern void *avlfind _P(( void *, AVL_TREE )); X X X /* Routines to search for the minimal item of a tree */ Xextern void *avldelmin _P(( AVL_TREE )); Xextern void *avlfindmin _P(( AVL_TREE )); X X X /* Routines to search for the maximal item of a tree */ Xextern void *avldelmax _P(( AVL_TREE )); Xextern void *avlfindmax _P(( AVL_TREE )); X X#endif /* NEXTERN */ X X#undef _P X#endif /* AVL_H */ END_OF_FILE if test 2097 -ne `wc -c <'avl.h'`; then echo shar: \"'avl.h'\" unpacked with wrong size! fi # end of 'avl.h' fi echo shar: End of shell archive. exit 0 ______________________ "And miles to go before I sleep." ______________________ Brad Appleton brad@ssd.csd.harris.com Harris Computer Systems uunet!hcx1!brad Fort Lauderdale, FL USA ~~~~~~~~~~~~~~~~~~~~ Disclaimer: I said it, not my company! ~~~~~~~~~~~~~~~~~~~