Site hosted by Angelfire.com: Build your free website today!

(c) 2002 - Pedro Flynn <pflynn@microsoftsucks.org>


08/16/2002 - I've a new contributor ! Leandro Carisio Fernandes is the
mainteiner of LProgramacao , a very usefull programming site where you can find
tons of information and tools. Very cool !

08/03/2002 - YACLib 1.1 released

   Two new data structures were added: CQueue (circular queues) and Deque (double ended queues, aka deques for short). See the changelog for more details.

07/26/2002 - YACLib 1.0 released
   This is the first release !

1. YACLib - The Yet Another C Library.

    YACLib is a standard data structures library that provides some of the most commom data structures programmers need to their every day coding.

2. Portability

   
Since YACLib is entirely written in ANSI C, it should be portable to virtualy any platform that has an ANSI C compiler. I've been compiling and testing YACLib on Linux and FreeBSD platforms, but ** I think ** it will compile without problems in  other platforms such as Mac or MS Windows.

3. Where to get YACLib

   
The latest version of YACLib can be downloaded here.

4. Installing YACLib on your system.

    If you are using an Unix Like operating system such as Linux or *BSD and you have the GNU Make ultility and the GNU C compiler (and probably you do), it's fairly easy:

1. untar the YACLib's tarball you've downloaded:
 
you@yourhost$   tar -xzvf yaclib-x.x.x.tar.gz

2. cd to the directory that was created:

you@yourhost$  cd yaclib-x.x.x.tar.gz

3. type ./install to run the install script:

you@yourhost$ ./install

     The script will ask you some questions about where to install YACLib on your system, what kind of library to compile (i.e, the shared or the static version, or both), and also if you want to install the documentation. Then, it will start the compilation and finally it will install YACLib on your system. And that's all.

5. YACLib 1.1 data structures and types:




                            Table 1: YACLib's 1.1 main data structures
Structure's name
 What it represents
LList                       
OLList
DLList
ODLList
CLList
Stack
Queue
CQueue          (new)
Deque             (new)
Set
OSet
Heap
PQueue
CHTable
Graph                        
singly-linked lists
ordered singly-linked lists
doubly-linked lists
ordered doubly-linked lists
circular-linked lists
stacks
queues
circular queues
double ended queues ( aka deques)
sets
ordered sets
heaps
priority queues
hash tables (chained hash table model)
graphs (adjacency-list representation)

                            Table 2: Other YACLib's 1.1 data structures
Strucure's name
What it represents
LListElement          
OLListElement
DLListElement
ODLListElement
CLListElement
StackElement
QueueElement
CQueueElement
DequeElement
SetElement
OSetElement
Vertex
Edge
singly-linked list element                 
ordered singly-linked list element
doubly-linked list element
ordered doubly-linked list element
circular-linked list element
stack element
queue element
circular queue element
deque element
set element
ordered set element
graph vertex
graph edge
                             note: most of the time it won't be necessary any kind of direct access to these data structures. YACLib provides
                                      a number of functions and macros to perform this work
in a transparent and reliable way.


                                      Table 3: YACLib's 1.1 special function types
function type's name
What it represents
comparefunc                  
destroyfunc
hashfunc
function to compare data elements
function to free dynamically allocated data.
hash function
                             note: these special function types will never be directly called. These functions are designed to be encapsulated
                                       inside of each of the YACLib's main data structures.



6. The YACLib 1.1 API

LList                       
OLList
DLList
ODLList
CLList
Stack
Queue
CQueue
Deque
Set
OSet
Heap
PQueue
CHTable
Graph