queue.c

来自「举世闻名的joe记事本源程序」· C语言 代码 · 共 41 行

C
41
字号
/* * 	Doubly linked list primitives *	Copyright *		(C) 1992 Joseph H. Allen * *	This file is part of JOE (Joe's Own Editor) */#include "types.h"void *QUEUE;void *ITEM;void *LAST;void *alitem(void *list, int itemsize){	STDITEM	*freelist = (STDITEM *)list;	if (qempty(STDITEM, link, freelist)) {		STDITEM *i = (STDITEM *) joe_malloc(itemsize * 16);		STDITEM *z = (STDITEM *) ((unsigned char *) i + itemsize * 16);		while (i != z) {			enquef(STDITEM, link, freelist, i);			i = (STDITEM *) ((unsigned char *) i + itemsize);		}	}	return (void *) deque_f(STDITEM, link, freelist->link.prev);}void frchn(void *list, void *ch){	STDITEM *freelist = (STDITEM *)list;	STDITEM *chn = (STDITEM *)ch;	STDITEM *i;	if ((i = chn->link.prev) != chn) {		deque(STDITEM, link, chn);		splicef(STDITEM, link, freelist, i);	}}

⌨️ 快捷键说明

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