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

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

?? p77_79.cpp

?? 殷人昆 數據結構 一些書中的源代碼 系某師兄所做 c++版
?? CPP
字號:
		#include <stdio.h>
		#include <iostream.h>

		template <class Type> class List;					//前視的類定義

		template <class Type> class ListNode {					//鏈表結點類的定義
		friend class List<Type>;							//List類作為友元類定義
		public:
		   ListNode ( );								//不給數據的構造函數
		   ListNode ( const Type& item );					//給數據的構造函數
		   ListNode ( const Type& item, ListNode<Type>* next );
		   ListNode<Type> *NextNode ( ) { return link; }			//給出當前結點的下一個結點地址
		   void InsertAfter ( ListNode<Type> *p );				//當前結點插入
		   ListNode<Type> *GetNode ( const Type& item, ListNode<Type> *next );	//建立一個新結點
		   ListNode<Type> *RemoveAfter ( );					//刪除當前結點的下一結點
		private:
		   Type data;								//數據域
		   ListNode<Type> *link;						//鏈指針域
		};

		template <class Type> class List {					//單鏈表類定義
		public:
		   List ( ) { last =first = new ListNode<Type> ( ); }	//構造函數, 建立一個空鏈表
		   ~List ( );									//析構函數
		   void MakeEmpty ( );							//將鏈表置為空表
		   int Length ( ) const;							//計算鏈表的長度
		   ListNode<Type> *GetNode ( const Type& item, ListNode<Type> *next );	//建立一個新結點
		   ListNode<Type> *FindValue ( Type value );				//在鏈表中搜索含數據value的結點
		   ListNode<Type> *FindPosition ( int i );					//搜索鏈表中第i個元素的地址
		   int Insert ( Type value, int i );					//將新元素value插入在鏈表中第i個位置
		   Type *Remove ( int i );						//將鏈表中的第i個元素刪去
		   Type *Get ( int i );							//取出鏈表中第i個元素
		   void Print();
		private:
		   ListNode<Type> *first, *last;					//鏈表的表頭指針, 表尾指針
		};

		template <class Type> void ListNode<Type>::ListNode ( ) : link (NULL) { }
		//構造函數, 僅初始化指針成員。

		template <class Type> void ListNode<Type>::ListNode ( const Type& item ) : data (item), link (NULL) { }
		//構造函數, 初始化數據與指針成員。

		template <class Type> void ListNode<Type>::ListNode ( const Type& item, ListNode<Type>* next ) : data (item), link (next) { }

		template <class Type> void ListNode<Type>::InsertAfter ( ListNode<Type> *p ) {
		//將p所指示的結點鏈接成為當前結點(*this)的后繼結點。
			 p->link = link;  link = p;
		}

		template <class Type> ListNode<Type>* List<Type>::GetNode ( const Type& item,
		ListNode<Type> * next ){
		//以數據成員item和指針next為參數, 建立一個新結點, 函數返回新結點地址。
		   ListNode<Type> *newnode = new ListNode<Type> ( item, next );
		   return newnode;
		}

		template <class Type> ListNode<Type> *ListNode<Type>::RemoveAfter ( ) {
		//從鏈中摘下當前結點的下一結點, 并為刪除它而返回其地址。
		   ListNode<Type> *tempptr = link;					//保存要被刪除結點的地址
		   if ( link == NULL ) return NULL;					//當前結點無后繼, 返回NULL
		   link = tempptr->link;							//將被刪結點從鏈中摘下
		   return tempptr;
		}

		template <class Type> List<Type>::~List ( ) { MakeEmpty ( );  delete first;  first = last = NULL; }
		//析構函數

		template <class Type> void List<Type>::MakeEmpty ( ) {
		//將鏈表置為空表
		   ListNode<Type> *q;
		   while ( first->link != NULL ) {					//當鏈不空時, 刪去鏈中所有結點
			 q = first->link;  first->link = q->link;
			 delete q;								//循鏈逐個刪除,保留一個表頭結點
		   }
		   last = first;								//表尾指針指向表頭結點
		}

		template <class Type> int List<Type>::Length ( ) const {
		//計算帶表頭結點的單鏈表的長度
		   ListNode<Type> *p = first->link;  int count = 0;
		   while ( p != NULL ) { p = p->link;  count++; }			//循鏈掃描, 尋找鏈尾
		   return count;
		}

		template <class Type> ListNode<Type> *List <Type>::FindValue ( Type value ) {
		//在單鏈表中搜索含數據value的結點, 搜索成功時, 函數返回該結點地址; 否則返回NULL值。
		   ListNode<Type> *p = first->link;
		   while ( p != NULL && p->data != value )  p = p->link;	//循鏈找含k結點
		   return p;
		}

		template <class Type> ListNode<Type> *List<Type>::FindPosition ( int i ) {
		//定位函數。函數返回鏈表中第i個元素的地址。若i<-1或i超出表中結點個數,則返回NULL。
		   if ( i < -1 ) return NULL;						// i值不合理
		   if ( i == -1 ) return first;						// i = -1時函數返回表頭結點地址
		   ListNode<Type> *p = first->link;  int j = 0;			//檢測指針p指向表中第一個結點
		   while ( p != NULL && j < i ) { p = p->link;  j = j++; }	//尋找第i個結點的地址
		   return p;				 //函數返回第i個結點地址, 若返回NULL, 表示i值太大
		}

		template <class Type> int List<Type>::Insert ( Type value, int i ) {
		//將新元素value插入在鏈表中第i個位置。
		   ListNode<Type> *p = FindPosition ( i-1 );					//定位第i-1個元素 (i ( 0)
		   if ( p == NULL ) return 0;						//參數i的值不合理,函數返回0
		   ListNode<Type> *newnode = GetNode ( value, p->link );	//創建含value的結點
		   if ( p->link == NULL ) last = newnode;
		   p->link = newnode;							//插入成功,函數返回1
		   return 1;
		}

		template <class Type> Type *List<Type>::Remove ( int i ) {
		//將鏈表中的第i個元素刪去, 通過函數返回該元素。若i不合理, 則返回NULL。
		   ListNode<Type> *p = FindPosition (i-1), *q;				// p定位于第i-1個元素
		   if ( p == NULL || p->link == NULL ) return NULL;		// i的值不合理或空表,返回NULL
		   q = p->link;  p->link = q->link;					// q指向被刪結點,重新拉鏈
		   Type value = q->data;						//取出被刪結點中的數據值
		   if ( q == last ) last = p;						//刪表尾結點時, 表尾指針修改
		   delete q;  return &value;
		}

		template <class Type> Type *List<Type>::Get ( int i ) {
		//取出鏈表中第i個元素。
		   ListNode<Type> *p = FindPosition ( i );					//定位于第i個元素
		   if ( p == NULL || p == first ) return NULL;			//空表或參數i的值不合理
		   else return & p->data;
		}

		template < class Type > void List<Type> :: Print() {
		    int i = 0;
		    Type *p = Get (i);
		    while ( p != NULL ) {
			cout << *p << "  " ;
			p = Get ( ++i );
		    }
		    if ( i == 0 ) cout << " empty!!!! ";
		    cout << endl;
		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品福利网| 亚洲男人的天堂在线aⅴ视频| 国产成人在线影院| 午夜亚洲福利老司机| 中文字幕一区二区三区四区不卡| 欧美精品一区二区三| 欧美另类z0zxhd电影| 91蜜桃视频在线| kk眼镜猥琐国模调教系列一区二区 | 久久久精品人体av艺术| 精品三级在线看| 日韩无一区二区| 欧美一区二区视频网站| 欧美精品一级二级| 91麻豆精品国产无毒不卡在线观看| 日本福利一区二区| 欧美日韩一区在线观看| 欧美日韩精品免费| 91精品国产麻豆| 日韩视频一区二区三区| 欧美一区二视频| 日韩写真欧美这视频| 精品国产乱码久久久久久免费 | 不卡的av在线播放| 成人午夜电影网站| 9人人澡人人爽人人精品| 不卡的看片网站| 色94色欧美sute亚洲13| 色偷偷久久人人79超碰人人澡| 91久久精品网| 6080yy午夜一二三区久久| 日韩欧美亚洲一区二区| 国产亚洲欧美在线| 国产精品国产精品国产专区不蜜 | av在线免费不卡| 91久久精品一区二区三| 欧美精品日韩一区| 精品福利在线导航| 国产精品麻豆一区二区| 一区二区三区波多野结衣在线观看| 亚洲一级二级三级| 国内不卡的二区三区中文字幕| 国产成人精品三级| 在线观看av一区| 亚洲精品在线免费观看视频| 亚洲欧洲一区二区三区| 午夜精品123| 欧日韩精品视频| 69堂精品视频| 国产精品动漫网站| 日本vs亚洲vs韩国一区三区二区 | 国产mv日韩mv欧美| 日本久久电影网| 日韩欧美一二三四区| 亚洲三级在线看| 久久精品免费观看| 一本到三区不卡视频| 日韩欧美亚洲国产另类| 尤物视频一区二区| 国产一区二区三区观看| 欧美写真视频网站| 国产欧美日韩卡一| 日本欧美韩国一区三区| 成人h精品动漫一区二区三区| 91精品国产综合久久福利| 中文字幕日韩精品一区| 麻豆成人久久精品二区三区小说| 91年精品国产| 久久久777精品电影网影网| 亚洲成人动漫在线免费观看| 成人综合在线观看| 精品国产污污免费网站入口 | 中文字幕不卡一区| 麻豆国产91在线播放| 在线精品视频小说1| 国产农村妇女精品| 国产精品亚洲一区二区三区妖精| 91精品国产综合久久婷婷香蕉| 亚洲欧洲日韩一区二区三区| 国内精品写真在线观看| 欧美一二三区精品| 亚洲高清视频的网址| 91最新地址在线播放| 久久久99久久| 国产麻豆精品视频| 26uuu欧美| 久久91精品久久久久久秒播| 欧美色爱综合网| 亚洲一级电影视频| 91成人在线精品| 亚洲欧美日韩国产手机在线| 成人在线综合网站| 国产人伦精品一区二区| 国产精品香蕉一区二区三区| 精品国产成人系列| 精品写真视频在线观看| 精品乱人伦小说| 精品系列免费在线观看| 亚洲精品一区二区三区蜜桃下载 | 欧美人牲a欧美精品| 亚洲aⅴ怡春院| 韩国中文字幕2020精品| 亚洲最大色网站| 在线视频欧美精品| 亚洲一区二区三区四区的 | 麻豆91在线观看| 久久一区二区视频| 国产成人福利片| 中文字幕+乱码+中文字幕一区| 国产麻豆视频一区| 国产精品不卡一区| 在线亚洲一区观看| 午夜精品一区二区三区电影天堂| 欧美中文字幕久久| 视频一区二区国产| 久久久蜜臀国产一区二区| 成人黄动漫网站免费app| 亚洲精品国久久99热| 69堂国产成人免费视频| 国产精品自拍av| 亚洲综合免费观看高清完整版在线| 欧美日韩小视频| 韩国在线一区二区| 亚洲女人****多毛耸耸8| 欧美日韩精品一区二区三区四区 | 岛国精品在线播放| 亚洲午夜影视影院在线观看| 日韩一区二区麻豆国产| 国产成人aaaa| 亚洲成在人线在线播放| 精品剧情在线观看| 91视频免费看| 国产在线精品视频| 亚洲免费av观看| 亚洲精品在线免费播放| 色综合久久综合网| 国产在线国偷精品产拍免费yy| 亚洲免费在线视频一区 二区| 在线成人高清不卡| 成人国产在线观看| 久久er99精品| 一区二区三区四区不卡在线| 2014亚洲片线观看视频免费| 欧美综合色免费| 成人夜色视频网站在线观看| 日韩激情视频网站| 亚洲青青青在线视频| www激情久久| 欧美日韩成人在线| 99久久99久久久精品齐齐| 久久精品二区亚洲w码| 一区二区三区在线看| 日本一区二区免费在线| 欧美不卡一区二区三区四区| 欧美视频中文字幕| 91在线码无精品| 国产成人亚洲综合a∨婷婷图片| 日日夜夜一区二区| 亚洲自拍与偷拍| 国产精品电影院| 国产免费成人在线视频| 久久综合色之久久综合| 欧美一区二区三区公司| 欧美亚洲图片小说| 色哟哟在线观看一区二区三区| 国产成人精品影院| 国产一区二区调教| 久久精品国产精品青草| 性做久久久久久免费观看| 亚洲欧美在线aaa| 欧美国产欧美综合| 久久精品一区二区| 国产日产欧产精品推荐色| 久久新电视剧免费观看| 欧美变态tickle挠乳网站| 日韩一区二区三区观看| 91精品午夜视频| 91精品欧美久久久久久动漫| 欧美日韩性生活| 欧美电影一区二区三区| 欧美视频精品在线观看| 欧美系列亚洲系列| 欧美三级电影一区| 欧美精品少妇一区二区三区| 欧美日韩国产另类不卡| 欧美男生操女生| 91麻豆精品国产| 欧美精品一区二区三区高清aⅴ| 久久综合九色综合97婷婷女人| 精品国产乱码久久久久久久| 久久色在线视频| 中文字幕av资源一区| 亚洲伦理在线精品| 亚洲成人久久影院| 久久精品国产亚洲aⅴ| 国产风韵犹存在线视精品| 成人一级黄色片| 欧美在线观看一二区| 欧美一区二区三区小说| 精品国产伦一区二区三区免费|