/*
 * list.h
 *
 *  Created on: Oct 31, 2010
 *      Author: jenson
 */

#ifndef LIST_H_
#define LIST_H_



#define TRUE 1;
#define FALSE 0;

typedef int elem_type;
typedef struct _sq_list * sq_list;

#define LIST_INIT_SIZE sizeof(struct _sq_list)
#define LIST_INCREMENT_SIZE sizeof(elem_type) * 2

typedef struct _sq_list{
    elem_type * data;
    int length;
    int list_size;
};

extern sq_list sq_create();
extern void sq_clear(sq_list list);
extern int sq_empty(sq_list list);
extern int sq_length(sq_list list);
extern int sq_index_of(sq_list list,elem_type e);
extern int sq_pre_elem(sq_list list,elem_type e,elem_type * value);
extern int sq_next_elm(sq_list list,elem_type e,elem_type *value);
extern int sq_insert(sq_list list,elem_type e);
extern int sq_delete(sq_list list,int pos,elem_type *del);
extern void sq_display(sq_list list);
extern void sq_destroy(sq_list list);

#endif /* LIST_H_ */