/* ==================================================================== * Copyright (c) 1999-2001 Carnegie Mellon University. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY * NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ==================================================================== * */ /* * list.h -- Linked list related * * ********************************************** * CMU ARPA Speech Project * * Copyright (c) 1996 Carnegie Mellon University. * ALL RIGHTS RESERVED. * ********************************************** * * HISTORY * * 16-May-96 M K Ravishankar (rkm@cs.cmu.edu) at Carnegie Mellon University * Created from Fil Alleva's original. */ #ifndef _LIST_H_ #define _LIST_H_ #include #ifdef WIN32 #include #endif typedef struct { int32 size_hint; /* For initial allocation */ int32 size; /* Number entries in the list */ int32 in_use; /* Number entries in use in list */ caddr_t *list; /* The list */ } list_t; list_t *new_list(void); int list_add (list_t *list, caddr_t sym, int32 idx); caddr_t list_lookup (list_t const *list, int32 idx); void list_insert (list_t *list, caddr_t sym); void list_unique_insert (list_t *list, caddr_t sym); int list_free (list_t *list); int32 list_index (list_t const *list, caddr_t sym); int32 listLength (list_t const *list); void listWrite (FILE *fs, list_t const *list); void listRead (FILE *fs, list_t *list); #endif /* _LIST_H_ */