///////////////////////////////////////////////////////////////////////////// Copyright 1993 by EZ Software Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both the copyright notice and this permission notice appear in supporting documentation, and that the name of EZ Software not be used in advertising or publicity pertaining to distribution of the software without specific written prior permission. EZ Software makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. EZ Software DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL EZ Software BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. //////////////////////////////////////////////////////////////////////////// Terminology ----------- ./ means current directory. > means prompt. 1. Install: ----------- ./datalib -+-- stack | |-- linklist | |-- queue | +--- examples from the directory into wish you want the datalib directory to be created > gzip -d datalib1.01.tgz > tar -xvf datalib1.01.tar should have > ./datalib ./datalib/linklist created ./datalib/stack created ./datalib/queue created There is one makefile in the linklist, stack and queue directory that creates the individual linklist.o, stack.o and queue.o. I have also included another makefile in the datalib directory that allows you to create the datalib library. This allows you in the future to have datalib for linking. If you gather other data structures, feel free to add them to the datalib, or to add the data structures to other library. ( up to your convenience). After installing the files, just do a make using the appropriate makefile > make -f makefile 2. Documentation: ----------------- For information on how to use the library's functions, read the .doc files in each subdirectory. The examples (or should I say the example) in the examples directory may give you an idea on how to use the library. The stack and queue types are good examples on how some data type can be derived directly from the linklist type. Note that the linklist is the place where I put most of the functionality. 3. How to use the libary: ------------------------- You can copy the libdatalib.a file to your library directory, or leave it in the datalib directory and add the path to you compiler option. (ie for gcc gcc -L$(DATALIB_PATH) -ldatalib). For the name of the library use datalib and not libdatalib. (lib is added to the front of the name). There is a datalib.h file that includes stack.h,queue.h,linklist.h. Make sure you add the include path to the command line. (ie gcc -i$(DATALIB_PATH)). Feel free to use the lib at your convenience. There is no better setup, just one that you feel more confortable with. 4. Future development: ---------------------- In the near future, I will be adding btree, hashing and other data type support. I would also like to add disk support for creating large data structure (This has been added to the link list). Add C++ support, but in a longer future. Also, these functions will be soon available under Microsoft Window. (I have to change the alloc functions, and add the proper defines in the header). in the working. adding support for graph. adding some binary tree indexes. adding load and save to every data structure. provide user defined sort function for insertion. (limited to one per object). port to microsoft window. estimated release date 08/31/95. version 2.0 IF YOU WISH TO CONTRIBUTE TO THIS EVOLVING LIBRARY, FEEL FREE TO CONTACT ME at chavey@cis.udel.edu. Thank you. datalib release 1.05 06/01/95 ----------------------------- FIXES & IMPROVEMENTS: --------------------- - at last made the queue and stack type derived from the linklist. - added llload and llsave. - added support for parameter validation. - changed defines for error code to be <= 0. - added support for greater and less in llfind. - fixed a bug in the stack stkpop. - renamed the queue function, and added macros. COMPATIBILITY: -------------- - no api modification. (unless interrested in error codes). - the queue has only new name (qdequeue and qenqueue). the parameters are the same. datalib release 1.03, 1.04 04/13/95 ------------------------------------- FIXES & IMPROVEMENTS: --------------------- - fixed bugs with circular link list getwnext. - added support for querry types in llfind. COMPATIBILITY: -------------- - the find function needs to be altered to accept an interger for the querry type. this can be LLLESS, LLGREATER, LLEQUAL. Also llfind has now an extra parameter. datalib release 1.02 10/13/94 ----------------------------- FIXES & IMPROVEMENTS: --------------------- - added support circular link list in llgetwprev, llgetwnext. - added functionality for multiple compare functions. - added support for adding at random. - standardized parameters and error define. - better prototypes. - corrected error in lladd. - corrected on major error with lldelete. COMPATIBILITY: -------------- - all the functions are compatible with llist.1.0 but llnew, added a parameter and lladd, modified parameter 3 from the nSize of the data to the place where to insert the data in the list. - all the stack and queue functions are new. - note that the queue and stack are standard data type. If one whishes to implement priority queue,stack, it is possible to do so using the linklist data type. Some may comment on the fact the the queue does not use the linklist as a base and this is justified, one update that will be coming is the replacemenmt of the queue definition by one derived from linklist. datalib release 1.01 05/10/94 ----------------------------- FIXES & IMPROVEMENTS: --------------------- - added support for stack and queues. COMPATIBILITY: -------------- - entirely compatible with datalib release 1.00.