User:Antigng-bot/struct.h

typedef struct hashlist
{
	int flag;
	struct ext *node;
	struct ext *cur;
} HASHLIST;
struct ext
{
	union key_t
	{
		char *str;
		unsigned int num;
		char ch;
	} key;
	void *p;
	struct ext *next;
	struct ext *vnext;
};

typedef struct queue
{
	struct ext *head;
	struct ext *end;
	int length;
} QUEUE;
struct hashlist *hashini();
int str_hashing(const char *title);
int str_hashquery(struct hashlist *hsh,const char *title,void **p);
int str_hashadd(struct hashlist *hsh,const char *title,void *p);
int int_hashing(unsigned int num);
int int_hashquery(struct hashlist *hsh,unsigned int num,void **p);
int int_hashadd(struct hashlist *hsh,unsigned int num,void *p);
int str_hashdestroy(struct hashlist *hsh);
int str_hashdestroy_withfree(struct hashlist *hsh,void freefunc(void *));
struct queue *queueini();
int queueisnull(struct queue *q);
int queuepush(struct queue *q,void *title);
int queuepop(struct queue *q,void **title);