⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dllist.h

📁 关系型数据库 Postgresql 6.5.2
💻 H
字号:
/*------------------------------------------------------------------------- * * dllist.h *		simple doubly linked list primitives *		the elements of the list are void* so the lists can contain *		anything *		Dlelem can only be in one list at a time * * *	 Here's a small example of how to use Dllist's : * *	 Dllist *lst; *	 Dlelem *elt; *	 void	*in_stuff;	  -- stuff to stick in the list *	 void	*out_stuff * *	 lst = DLNewList();				   -- make a new dllist *	 DLAddHead(lst, DLNewElem(in_stuff)); -- add a new element to the list *											 with in_stuff as the value *	  ... *	 elt = DLGetHead(lst);			   -- retrieve the head element *	 out_stuff = (void*)DLE_VAL(elt);  -- get the stuff out *	 DLRemove(elt);					   -- removes the element from its list *	 DLFreeElem(elt);				   -- free the element since we don't *										  use it anymore * * Copyright (c) 1994, Regents of the University of California * * $Id: dllist.h,v 1.10 1999/05/31 23:48:03 tgl Exp $ * *------------------------------------------------------------------------- */#ifndef DLLIST_H#define DLLIST_Hstruct Dllist;struct Dlelem;typedef struct Dlelem{	struct Dlelem *dle_next;	/* next element */	struct Dlelem *dle_prev;	/* previous element */	void	   *dle_val;		/* value of the element */	struct Dllist *dle_list;	/* what list this element is in */} Dlelem;typedef struct Dllist{	Dlelem	   *dll_head;	Dlelem	   *dll_tail;} Dllist;extern Dllist *DLNewList(void); /* initialize a new list */extern void DLFreeList(Dllist *);		/* free up a list and all the										 * nodes in it */extern Dlelem *DLNewElem(void *val);extern void DLFreeElem(Dlelem *);extern Dlelem *DLGetHead(Dllist *);extern Dlelem *DLGetTail(Dllist *);extern Dlelem *DLRemTail(Dllist *l);extern Dlelem *DLGetPred(Dlelem *);		/* get predecessor */extern Dlelem *DLGetSucc(Dlelem *);		/* get successor */extern void DLRemove(Dlelem *); /* removes node from list */extern void DLAddHead(Dllist *list, Dlelem *node);extern void DLAddTail(Dllist *list, Dlelem *node);extern Dlelem *DLRemHead(Dllist *list); /* remove and return the head */extern void DLMoveToFront(Dlelem *); /* move node to front of its list */#define DLE_VAL(x)	(x->dle_val)#endif	 /* DLLIST_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -