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

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

?? linlist.h

?? X-tree的C++源碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
#ifndef __LINLIST#define __LINLIST#include <stdio.h>////////////////////////////////////////////////////////////////////////// LinList  (SLink)////////////////////////////////////////////////////////////////////////template <class DATA> struct SLink {    DATA *d;                    // Zeiger auf Element-Daten    SLink<DATA> *next;          // Zeiger auf naechstes Element    SLink<DATA> *prev;          // Zeiger auf vorhergehendes Element    SLink();    ~SLink();};template <class DATA> SLink<DATA>::SLink(){    d = NULL;    next = prev = NULL;}template <class DATA> SLink<DATA>::~SLink(){    delete d;}////////////////////////////////////////////////////////////////////////// LinList////////////////////////////////////////////////////////////////////////template <class DATA> class LinList{protected:    SLink<DATA> *first;         // Rootzeiger des Datenbestands    SLink<DATA> *last;          // Zeiger auf letztes Element    int anz;                    // Anzahl der belegten Elemente in der Liste    SLink<DATA> *akt;           // zeigt auf aktuelles Element    int akt_index;              // Index des zuletzt mit get geholten Elementspublic:    LinList();    virtual ~LinList();    int get_num()               // gibt Anzahl der im Index belegten Elements        { return anz; }         // zurueck        void check();               // ueberprueft Konsistenz der Liste    void insert(DATA *f);       // haengt ein Element vorne an die Liste an    bool erase();               // loescht aktuelles Element aus der Liste    DATA * get(int i);          // liefert i-tes Element    DATA * get_first();         // liefert erstes Element im Index    DATA * get_last();          // liefert erstes Element im Index    DATA * get_next();          // liefert naechstes Element im Index    DATA * get_prev();          // liefert vorhergehendes Element im Index};template <class DATA> LinList<DATA>::LinList(){    anz = 0;    akt_index = -1;    akt = first = last = NULL;}template <class DATA> LinList<DATA>::~LinList(){    SLink<DATA> *hf;    // Elemente freigeben    akt = first;    while (akt != NULL)    {	hf = akt->next;	delete akt;	akt = hf;    }}template <class DATA> void LinList<DATA>::insert(DATA *f){    SLink<DATA> *sd;    // neuen Rahmen erzeugen    sd = new SLink<DATA>;    sd->d = f;    // Zeiger umbiegen    sd->next = first;    sd->prev = NULL;    if (first != NULL)	first->prev = sd;    // first, last und anz berichtigen    anz++;    first = sd;    if (last == NULL)	last = sd;    // Position ist undefiniert    akt = NULL;    akt_index = -1;}template <class DATA> bool LinList<DATA>::erase(){    SLink<DATA> *n_akt;    // Liste leer oder akt nicht definiert?    if (akt)    {	// Element ist erstes Element	if (akt == first)	{	    // Element ist einziges Element	    if (akt == last)	    {		akt_index = -1;		first = last = NULL;		n_akt = NULL;	    }	    else	    {		// Element ist erstes Element, aber nicht leztes		(akt->next)->prev = NULL;		first = akt->next;		n_akt = first;		akt_index = 0;	    }	}	else	{	    // Element ist letztes Element	    if (akt == last)	    {		(akt->prev)->next = NULL;		last = akt->prev;		n_akt = NULL;		akt_index = -1;	    }	    else	    // Element ist mitten in der Liste	    {		(akt->next)->prev = akt->prev;		(akt->prev)->next = akt->next;		n_akt = akt->next;		akt_index++;	    }	}	// Speicher freigeben	delete akt;	// aktuelles Element setzen	akt = n_akt;	// anz berichtigen	anz--;	return TRUE;    }    return FALSE;}template <class DATA> DATA* LinList<DATA>::get(int i)// liefert das i-te Element in der Liste{    bool ahead;   // wenn ahead TRUE ist, wird in next-Richtung gesucht    int j;    // liegt das i-te Element ueberhaupt in der Liste?    if (i >= anz)	return NULL;    // ist die Liste schon auf das i-te Element positioniert?    if (i == akt_index)	return akt->d;    // hat eine Positionierung der Liste stattgefunden?    if (akt_index == -1)    {	// i liegt naeher an first, als an last	if (i < (anz / 2))	{	    akt = first;	    akt_index = 0;	    ahead = TRUE;	}	else	{	    akt = last;	    akt_index = anz - 1;	    ahead = FALSE;	}    }    else    {	// die gewuenschte Position liegt vor der aktuellen	if (i < akt_index)	{	    // liegt i naeher an first, als an akt_index?	    if ((akt_index - i) > i)	    {		akt = first;		akt_index = 0;		ahead = TRUE;	    }	    else		ahead = FALSE;	}	else	{	    // liegt i naeher an last, als an akt_index?	    if ((i - akt_index) > ((anz-1) - i))	    {		akt = last;		akt_index = anz - 1;		ahead = FALSE;	    }	    else		ahead = TRUE;	}    }    // gesuchter Index liegt in next - Richtung      if (ahead)    {	for (j = akt_index; j < i; j++)	{	    if (!akt)		error("LinList::get: List seems to be inkonsistent", TRUE);	    akt = akt->next;	}    }    else    {	for (j = akt_index; j > i; j--)	{	    if (!akt)		error("LinList::get: List seems to be inkonsistent", TRUE);	    akt = akt->prev;	}    }    akt_index = i;    return akt->d;}template <class DATA> DATA* LinList<DATA>::get_first(){    akt = first;    if (akt != NULL)    {	akt_index = 0;	return akt->d;    }    else	return NULL;}template <class DATA> DATA* LinList<DATA>::get_last(){    akt = last;    if (akt != NULL)    {	akt_index = anz - 1;	return akt->d;    }    else	return NULL;}template <class DATA> DATA* LinList<DATA>::get_next(){    akt = akt->next;    if (akt != NULL)    {	akt_index++;	return akt->d;    }    else    {	akt_index = -1;	return NULL;    }}template <class DATA> DATA* LinList<DATA>::get_prev(){    akt = akt->prev;    if (akt != NULL)    {	akt_index--;	return akt->d;    }    else    {	akt_index = -1;	return NULL;    }}template <class DATA> void LinList<DATA>::check(){    SLink<DATA> *f, *old_f;    int myanz;    char buffer[255];    old_f = first;    // Liste muss ganz leer sein    if (old_f == NULL)    {	if (last != NULL)	    error("LinList::check: first == NULL, last != NULL", FALSE);	if (anz != 0)	    error("LinList::check: first == NULL, anz != 0", FALSE);	return;    }    myanz = 1;    if (old_f->prev != NULL)    {	error("LinList::check: Listenkopf.prev ungleich NULL", FALSE);	return;    }    for (f = old_f->next; f != NULL; f = f->next)    {	if (f->prev != old_f)	{	    error("LinList::check: Rueckwaertsverkettung fehlerhaft", FALSE);            return;        }	if (old_f->next != f)	{	    error("LinList::check: Vorwaertsverkettung fehlerhaft", FALSE);            return;        }	old_f = f;	myanz ++;	if (myanz > anz)	{	    sprintf(buffer, "LinList::check: anz (%d != %d) passt nicht", myanz, anz);	    error(buffer, FALSE);	    return;	}    }    if (old_f->next != NULL)    {	error("LinList::check: Listenende.next ungleich NULL", FALSE);	return;    }    if (last != old_f)    {	error("LinList::check: last ungleich Listenende", FALSE);	return;    }    if (myanz != anz)    {	sprintf(buffer, "LinList::check: anz (%d != %d) passt nicht", myanz, anz);	error(buffer, FALSE);    }}////////////////////////////////////////////////////////////////////////// SortedLinList////////////////////////////////////////////////////////////////////////template <class DATA> class SortedLinList : public LinList<DATA>{    bool increasing;public:    SortedLinList();    void set_sorting(bool _increasing); // wenn increasing gleich TRUE, wird                                 // aufsteigend einsortiert                                // DIESE FUNKTION MUSS VOR DEM ERSTEN EINFUEGEN                                 // GERUFEN WERDEN !!!!!!!!!!!    void insert(DATA *f);       // fuegt ein Element durch direktes Einfuegen ein    void sort(bool _increasing);// sortiert die Liste

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产综合视频在线观看| 亚洲欧美日韩中文播放 | 色婷婷综合久色| 成人精品一区二区三区四区| 国产精品一区二区在线看| 蜜臀精品一区二区三区在线观看| 亚洲制服丝袜一区| 久久99精品一区二区三区三区| 青娱乐精品视频| 综合亚洲深深色噜噜狠狠网站| 久久久www免费人成精品| 国产午夜精品一区二区三区视频| 日本一区免费视频| 亚洲乱码一区二区三区在线观看| 亚洲午夜视频在线观看| 美女性感视频久久| 色婷婷亚洲综合| 久久久久9999亚洲精品| 亚洲欧洲日韩在线| 麻豆精品一区二区三区| 91在线播放网址| 精品黑人一区二区三区久久| 国产精品色噜噜| 麻豆91精品视频| 在线国产亚洲欧美| 国产精品美女久久久久久2018| 午夜视频在线观看一区二区 | 精品国产电影一区二区| 成人免费在线视频| 粉嫩绯色av一区二区在线观看| 在线亚洲免费视频| 亚洲色图欧美激情| 成人小视频在线观看| 欧美大度的电影原声| 日韩和欧美一区二区| 91国偷自产一区二区开放时间 | 欧美色视频在线观看| 国产精品视频一区二区三区不卡| 美女爽到高潮91| 精品国产人成亚洲区| 色哟哟在线观看一区二区三区| 欧美一级理论片| 亚洲欧美在线另类| 一区二区久久久| 99热在这里有精品免费| 国产福利一区二区三区视频在线| 亚洲一区二区三区中文字幕| 中文天堂在线一区| 久久日韩粉嫩一区二区三区| 欧美一卡二卡在线| 欧美二区三区91| 这里只有精品免费| 欧美日韩情趣电影| 欧美日韩国产片| 欧美日韩亚洲国产综合| 在线观看一区二区视频| 91黄色激情网站| 欧美日韩三级在线| 91精品国产91热久久久做人人| 在线观看欧美日本| 51精品秘密在线观看| 欧美美女bb生活片| 日韩欧美一级特黄在线播放| 欧美日韩一区二区三区不卡| 欧美亚日韩国产aⅴ精品中极品| 欧美中文字幕一区二区三区| 91精品婷婷国产综合久久竹菊| 欧美一区二区三区的| 久久一日本道色综合| 中文一区二区完整视频在线观看| 国产欧美一区二区精品久导航| 国产精品久久综合| 一区二区三区视频在线看| 亚洲一区二区三区在线看| 久久av老司机精品网站导航| 国产一区二区三区在线观看精品 | 久久蜜桃av一区二区天堂| 中文字幕一区二区三区四区不卡 | 色屁屁一区二区| 日韩一区二区在线看| 中文字幕一区日韩精品欧美| 青娱乐精品在线视频| 91在线一区二区三区| 欧美一区二区三区在线观看视频| 久久一区二区视频| 香蕉加勒比综合久久| 99免费精品视频| 久久美女艺术照精彩视频福利播放 | 久久精子c满五个校花| 亚洲一区在线观看网站| 国产一区二区三区精品视频| 91传媒视频在线播放| 自拍偷自拍亚洲精品播放| 激情偷乱视频一区二区三区| 91福利精品视频| 中文字幕第一区综合| 国产精品一线二线三线精华| 制服丝袜亚洲色图| 亚洲18色成人| 欧美系列亚洲系列| 亚洲福利一二三区| 欧美色图激情小说| 丝袜a∨在线一区二区三区不卡| 99re免费视频精品全部| 中文字幕av一区二区三区高| 国产原创一区二区| 国产色产综合色产在线视频 | 中文字幕第一区二区| 成人精品免费看| 国产精品乱码一区二区三区软件| 国产综合久久久久久久久久久久 | 日韩欧美第一区| 国产麻豆精品一区二区| 国产精品色哟哟网站| 日本精品裸体写真集在线观看| 亚洲欧美另类图片小说| 91精品国产色综合久久久蜜香臀| 亚洲色图一区二区三区| 日本韩国欧美国产| 亚洲精品免费在线| 欧美日韩亚洲另类| 蜜臀久久久久久久| 亚洲欧美偷拍另类a∨色屁股| 一区二区三区精品| 日韩精品最新网址| av不卡一区二区三区| 亚洲va欧美va天堂v国产综合| 日韩欧美一区二区视频| 国产成人精品午夜视频免费| 自拍偷在线精品自拍偷无码专区 | 亚洲大片在线观看| 国产精品污www在线观看| 在线中文字幕一区| 成人综合婷婷国产精品久久 | 免费日本视频一区| 亚洲日本在线天堂| 久久综合成人精品亚洲另类欧美| 91在线高清观看| www.欧美精品一二区| 国模套图日韩精品一区二区 | 国产一区二区看久久| 图片区小说区区亚洲影院| 国产精品麻豆久久久| 26uuu色噜噜精品一区| 欧美喷水一区二区| 欧美色综合天天久久综合精品| 夫妻av一区二区| 粉嫩久久99精品久久久久久夜| 韩国女主播成人在线观看| 日韩激情视频在线观看| 天堂蜜桃一区二区三区| 亚洲成人免费观看| 亚洲夂夂婷婷色拍ww47| 亚洲va国产va欧美va观看| 亚洲国产精品一区二区www在线| 国产精品国产自产拍高清av王其 | 欧美中文字幕亚洲一区二区va在线| 成人综合日日夜夜| 一本色道久久综合亚洲aⅴ蜜桃| 99久久国产综合色|国产精品| 不卡的av在线| 在线观看不卡一区| 日韩精品一区二区三区视频播放 | a级精品国产片在线观看| 91首页免费视频| 欧美日韩亚洲国产综合| 精品伦理精品一区| 亚洲素人一区二区| 天堂av在线一区| 成人爽a毛片一区二区免费| 99精品在线免费| 日韩一卡二卡三卡四卡| 国产午夜精品久久久久久免费视 | 一本一本久久a久久精品综合麻豆| 91麻豆自制传媒国产之光| 欧美精品vⅰdeose4hd| 久久精品一区蜜桃臀影院| 亚洲最大的成人av| 国产一区999| 9191久久久久久久久久久| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲靠逼com| 成人性生交大片免费看中文| 欧美挠脚心视频网站| 中文字幕一区二区三区在线播放 | 欧美激情在线看| 婷婷综合在线观看| 在线影院国内精品| 自拍偷拍国产精品| 丰满放荡岳乱妇91ww| 精品国产乱码久久久久久久久| 亚洲午夜电影网| 色综合天天综合在线视频| 欧美精品一区二区高清在线观看| 亚洲成a人v欧美综合天堂下载| 国产成人综合自拍| 国产精品看片你懂得| 不卡av电影在线播放| 中文字幕免费一区| 高清不卡一二三区|