亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? htlist.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/*								       HTList.c**	MANAGEMENT OF LINKED LISTS****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTList.c,v 2.33 2000/06/15 13:48:44 kahan Exp $****	A list is represented as a sequence of linked nodes of type HTList.**	The first node is a header which contains no object.**	New nodes are inserted between the header and the rest of the list.*//* Library include files */#include "wwwsys.h"#include "HTUtils.h"#include "HTList.h"PUBLIC HTList * HTList_new (void){    HTList *newList;    if ((newList = (HTList  *) HT_CALLOC(1, sizeof (HTList))) == NULL)        HT_OUTOFMEM("HTList_new");    newList->object = NULL;    newList->next = NULL;    return newList;}PUBLIC BOOL HTList_delete (HTList * me){    if (me) {	HTList *current;	while ((current = me)) {	    me = me->next;	    HT_FREE(current);	}	return YES;    }    return NO;}PUBLIC BOOL HTList_addObject (HTList * me, void * newObject){    if (me) {	HTList *newNode;	if ((newNode = (HTList  *) HT_CALLOC(1, sizeof(HTList))) == NULL)	    HT_OUTOFMEM("HTList_addObject");	newNode->object = newObject;	newNode->next = me->next;	me->next = newNode;	return YES;    } else {	HTTRACE(CORE_TRACE, "HTList...... Can not add object %p to nonexisting list\n" _ 		    newObject);    }    return NO;}PUBLIC BOOL HTList_appendObject (HTList * me, void * newObject){    if (me) {	while (me->next) me = me->next;	return HTList_addObject(me, newObject);    }    return NO;}PUBLIC BOOL HTList_removeObject (HTList * me, void * oldObject){    if (me) {	HTList *previous;	while (me->next) {	    previous = me;	    me = me->next;	    if (me->object == oldObject) {		previous->next = me->next;		HT_FREE(me);		return YES;	/* Success */	    }	}    }    return NO;			/* object not found or NULL list */}PUBLIC HTList * HTList_addList (HTList * me, void * newObject){    if (me) {	HTList *newNode;	if ((newNode = (HTList  *) HT_CALLOC(1, sizeof(HTList))) == NULL)	    HT_OUTOFMEM("HTList_addObject");	newNode->object = newObject;	newNode->next = me->next;	me->next = newNode;	return newNode;    } else {	HTTRACE(CORE_TRACE, "HTList...... Can not add object %p to nonexisting List\n" _ newObject);    }    return (HTList *) NULL;}PUBLIC HTList * HTList_appendList (HTList * me, void *newObject){    if (me) {	while (me->next) 	    me = me->next;	return HTList_addList(me, newObject);    }    return (HTList *) NULL;}PUBLIC BOOL HTList_quickRemoveElement (HTList * me, HTList * last){    if (me && last) {	last->next = me->next;	HT_FREE(me);	return YES;	/* Success */    }    return NO;			/* object not found or NULL list */}PUBLIC BOOL HTList_removeObjectAll (HTList * me, void * oldObject){ BOOL found = NO; if (me)   {    HTList* i;    while ((i = me->next))      {       if (i->object == oldObject)	 {	  me->next = i->next;	  HT_FREE(i);	  found = YES;	/* At least one object found */	 }        else	 {	  me = i;	 }      }   } return found;}PUBLIC void * HTList_removeLastObject  (HTList * me){    if (me && me->next) {	HTList *lastNode = me->next;	void * lastObject = lastNode->object;	me->next = lastNode->next;	HT_FREE(lastNode);	return lastObject;    } else			/* Empty list */	return NULL;}PUBLIC void * HTList_removeFirstObject  (HTList * me){    if (me && me->next) {	HTList * prevNode;	void *firstObject;	while (me->next) {	    prevNode = me;	    me = me->next;	}	firstObject = me->object;	prevNode->next = NULL;	HT_FREE(me);	return firstObject;    } else			/* Empty list */	return NULL;}PUBLIC void * HTList_firstObject  (HTList * me){    if (me && me->next) {	HTList * prevNode;	while (me->next) {	    prevNode = me;	    me = me->next;	}	return me->object;    } else			/* Empty list */	return NULL;}PUBLIC int HTList_count  (HTList * me){    int count = 0;    if (me)	while ((me = me->next))	    count++;    return count;}PUBLIC int HTList_indexOf (HTList * me, void * object){    if (me) {	int position = 0;	while ((me = me->next)) {	    if (me->object == object)		return position;	    position++;	}    }    return -1;}PUBLIC int HTList_indexOfElement (HTList * me, HTList * element){    if (me) {	int position = 0;	if (me == element)	    return -1;	while ((me = me->next)) {	    if (me == element)		return position;	    position++;	}    }    return -2;}PUBLIC HTList * HTList_elementOf (HTList * cur, void * object, HTList ** pLast){    HTList * 	last = cur;    void *	pres;    while ((pres = HTList_nextObject(cur))) {        if (pres == object) {	    if (pLast)		*pLast = last;	    return cur;	}	last = cur;    }    /*    **	didn't find object, but return end of list so it is easy to append    */    if (pLast)	*pLast = last;    return NULL;}PUBLIC void * HTList_objectAt  (HTList * me, int position){    if (position < 0)	return NULL;    if (me) {	while ((me = me->next)) {	    if (position == 0)		return me->object;	    position--;	}    }    return NULL;		/* Reached the end of the list */}PUBLIC void * HTList_removeObjectAt  (HTList * me, int position){    if (position < 0)	return NULL;    if (me) {	HTList * prevNode;	prevNode = me;	while ((me = me->next)) {	    if (position == 0) {		prevNode->next = me->next;		return me->object;	    }	    prevNode = me;	    position--;	}    }    return NULL;  /* Reached the end of the list */}/***  Do an insertion sort algorithm on the list. An empty list is already**  sorted and so is a single element list.*/PUBLIC BOOL HTList_insertionSort (HTList * head, HTComparer * comp){    HTList *tail, *q, *r, *p;    if (head && head->next && comp) {	tail = head->next;	while (tail->next) {	    q = tail->next;	    /*	    **  Depending on the return status of the comparer we either move	    **  the sentinel down the list or search the sorted sublist to	    **  insert it.	    */	    if (comp(q->object, head->next->object) >= 0) {		tail->next = q->next;		q->next = head->next;		head->next = q;	    } else {		r = head->next;		p = r->next;		while (comp(q->object, p->object) < 0) {		    r = p;		    p = r->next;		}		    		/*		**  If sentinel was found then q is already in right place.		**  Otherwise we'll have to move it		*/		if (q == p)		    tail = q;		else {		    tail->next = q->next;		    q->next = p;		    r->next = q;		}	    }	}	return YES;    } else {	HTTRACE(CORE_TRACE, "List........ Empty list or no sort algorithm\n");    }    return NO;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品在线观看| 91麻豆精东视频| 2欧美一区二区三区在线观看视频| 人人狠狠综合久久亚洲| 欧美成人bangbros| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 激情av综合网| 国产欧美一区二区精品秋霞影院| 国产激情一区二区三区| 综合久久久久久| 欧美日韩一区二区在线观看视频 | 丝袜亚洲精品中文字幕一区| 日韩午夜激情电影| 成人精品鲁一区一区二区| 中文字幕制服丝袜成人av | 日韩av中文字幕一区二区三区 | 日本一二三不卡| 色丁香久综合在线久综合在线观看| 亚洲一区二区不卡免费| 日韩精品一区二区三区老鸭窝 | 中文一区二区在线观看| 欧美吻胸吃奶大尺度电影| 韩国一区二区视频| 亚洲另类在线视频| 日韩女优制服丝袜电影| av网站免费线看精品| 偷窥国产亚洲免费视频 | 一区在线观看视频| 91精品国产色综合久久ai换脸 | jlzzjlzz亚洲女人18| 日韩成人精品在线观看| 中文字幕日本不卡| xf在线a精品一区二区视频网站| heyzo一本久久综合| 免费久久99精品国产| 亚洲日本在线天堂| 久久久无码精品亚洲日韩按摩| 91亚洲精品乱码久久久久久蜜桃| 首页欧美精品中文字幕| 日韩一区有码在线| 久久影院午夜片一区| 欧美日韩久久不卡| av不卡在线观看| 国产一区二区三区香蕉| 亚洲高清久久久| 中文字幕亚洲区| 久久久久久久久久久99999| 欧美色爱综合网| 91免费国产在线| 成人午夜免费av| 黄页视频在线91| 麻豆视频观看网址久久| 亚洲国产精品久久不卡毛片| 亚洲特级片在线| 国产欧美日韩精品在线| 精品日本一线二线三线不卡| 欧美高清hd18日本| 在线国产电影不卡| 91视频免费播放| caoporm超碰国产精品| 国产精品亚洲视频| 久久99精品久久久久久| 奇米色一区二区三区四区| 亚洲国产精品一区二区www| 一区二区三区国产精品| 亚洲另类色综合网站| 亚洲欧美另类久久久精品| 国产精品成人免费精品自在线观看| 国产亚洲欧美日韩俺去了| 国产亚洲人成网站| 欧美激情自拍偷拍| 国产精品麻豆99久久久久久| 中文乱码免费一区二区| 欧美国产日韩在线观看| 国产精品每日更新在线播放网址| 欧美国产综合色视频| 国产精品久久久久影院亚瑟| 国产精品全国免费观看高清| 中文字幕中文字幕一区| 亚洲精品国产无套在线观| 亚洲男人天堂一区| 亚洲一区视频在线| 天堂蜜桃91精品| 蜜桃在线一区二区三区| 国产一区二区在线影院| 成人精品国产免费网站| 91成人免费电影| 欧美久久婷婷综合色| 欧美大片拔萝卜| 久久综合狠狠综合久久综合88| 欧美经典三级视频一区二区三区| 国产精品护士白丝一区av| 亚洲免费电影在线| 天堂蜜桃一区二区三区 | 日本在线不卡视频| 精品一区二区在线观看| 国产91露脸合集magnet| 91一区二区三区在线观看| 欧美优质美女网站| 欧美成人女星排行榜| 中文子幕无线码一区tr| 夜夜爽夜夜爽精品视频| 免费视频一区二区| 成人黄色小视频在线观看| 91成人免费网站| 26uuu久久综合| 一色屋精品亚洲香蕉网站| 午夜精品免费在线| 成人一区二区三区视频在线观看| 欧美亚洲丝袜传媒另类| 欧美videossexotv100| 国产精品三级av| 免费观看91视频大全| 成人18精品视频| 欧美一级国产精品| 亚洲精品久久久蜜桃| 韩日欧美一区二区三区| 欧美视频中文字幕| 国产偷国产偷亚洲高清人白洁| 亚洲国产视频在线| 成人午夜在线播放| 欧美一区欧美二区| 亚洲人成在线观看一区二区| 韩国v欧美v亚洲v日本v| 在线区一区二视频| 国产欧美日韩不卡免费| 日本不卡在线视频| 在线免费一区三区| 中文字幕电影一区| 美女在线视频一区| 欧美午夜寂寞影院| 1024国产精品| 国产成人精品免费网站| 日韩欧美成人一区| 午夜欧美一区二区三区在线播放| www.色综合.com| 久久蜜桃av一区精品变态类天堂| 亚洲高清免费观看 | 成人免费视频视频| 日韩欧美在线网站| 偷窥国产亚洲免费视频| 99久久国产综合精品麻豆| 久久久久久久综合狠狠综合| 午夜国产精品一区| 91成人免费在线| 1区2区3区精品视频| 成人免费黄色在线| 国产午夜精品久久久久久免费视 | 国产不卡在线一区| 欧美α欧美αv大片| 日韩电影在线一区二区三区| 在线精品观看国产| 悠悠色在线精品| jiyouzz国产精品久久| 国产精品青草久久| 不卡一区二区中文字幕| 亚洲国产精品ⅴa在线观看| 激情小说亚洲一区| 久久综合九色综合97婷婷| 麻豆精品久久久| 日韩欧美一级二级三级久久久| 五月天中文字幕一区二区| 欧美亚洲综合网| 亚洲h动漫在线| 欧美另类久久久品| 日本vs亚洲vs韩国一区三区二区| 欧美精品电影在线播放| 日本欧美韩国一区三区| 欧美一级在线免费| 毛片av一区二区三区| 精品国产一区久久| 国产盗摄一区二区| 国产精品视频你懂的| 91原创在线视频| 一区二区高清视频在线观看| 欧美丝袜丝交足nylons| 天天操天天综合网| 欧美大片顶级少妇| 成人免费视频一区二区| 亚洲另类色综合网站| 欧美精品三级在线观看| 久久精品国产第一区二区三区| 久久久综合视频| 99久久精品国产毛片| 性做久久久久久久免费看| 日韩欧美不卡在线观看视频| 国产精品原创巨作av| 亚洲乱码日产精品bd| 6080午夜不卡| 国产乱对白刺激视频不卡 | 亚洲综合色丁香婷婷六月图片| 在线免费一区三区| 免费av网站大全久久| 亚洲国产精品二十页| 在线亚洲高清视频| 国内精品久久久久影院薰衣草| 中文字幕制服丝袜成人av| 欧美日韩国产精品成人| 国产精品一区二区三区四区 | 国产精品久久777777|