/////////////////////////////////////////////////////////////////////////////
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.