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

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

?? p216.cpp

?? 包含常見的數據結構的類和函數
?? CPP
字號:
#include "iostream.h"template <class Type> class SetList;					//用以表示集合的有序鏈表的類的前視定義template <class Type> class SetNode {					//集合的結點類定義public:   SetNode ():link(NULL){};   SetNode (const Type & item ) : data (item), link (NULL){};		//構造函數friend class SetList<Type>;friend ostream& operator <<(ostream& strm, SetList<Type>& a);private:   Type data;								//每個成員的數據   SetNode<Type> *link;							//鏈接指針};template <class Type> class SetList {					//集合的類定義public:   SetList ( );								//構造函數   void MakeEmpty ( );							//置空集合   int AddMember ( const Type & x );					//把新元素x加入到集合之中   int DelMember ( const Type & x );					//把集合中成員x刪去   void operator = ( SetList<Type> & right );			//復制集合right到this。   void operator + ( SetList<Type> & right );			//求集合this與集合right的并   void operator * ( SetList<Type> & right );			//求集合this與集合right的交   void operator - ( SetList<Type> & right );				//求集合this與集合right的差   int Contains ( const Type & x );					//判x是否集合的成員   int operator == ( SetList<Type> & right );			//判集合this與集合right相等   Type & Min ( );								//返回集合中的最小元素的值   Type & Max ( );							//返回集合中的最大元素的值   friend ostream& operator <<(ostream& strm, SetList<Type>& a);private:   SetNode<Type> *first, *last;						//有序鏈表的表頭指針, 表尾指針}template <class Type> void SetList<Type>::SetList ( ) {//本操作建立集合鏈表的頭結點, 并將鏈表置空。   first = last = new SetNode<Type>();  first->link = NULL;}template <class Type> void SetList<Type>::MakeEmpty(void){   SetNode<Type> *tmp1=first->link,*tmp2;   first->link=NULL;   last=first;   while (tmp1)   {     tmp2=tmp1;     tmp1=tmp1->link;     delete tmp2;   }}template <class Type> int SetList<Type>::Contains ( const Type & x ) {//測試函數: 如果x是集合的成員, 則函數返回1, 否則返回0。   SetNode<Type> *temp = first->link;					//鏈的掃描指針   while ( temp != NULL && temp->data < x ) temp = temp->link;	//循鏈搜索   if ( temp != NULL && temp->data == x ) return 1;			//找到, 返回1   else return 0;									//未找到, 返回0}template <class Type> int SetList<Type>::AddMember ( const Type & x ) {//把新元素x加入到集合之中。若集合中已有此元素, 則函數返回0, 否則函數返回1。   SetNode<Type> *p = first->link,  *q = first;				//p是掃描指針, q是p的前驅   while ( p != NULL && p->data < x ) { q = p;  p = p->link; }	//循鏈掃描   if ( p != NULL && p->data == x ) return 0;				//集合中已有此元素   SetNode<Type> *s = new SetNode<Type> (x);					//創建數據值為x的新結點   s->link = p;  q->link = s;							//鏈入有序鏈表, 插入位置在q、p之間   if ( p == NULL ) last = s;							//鏈到鏈尾時要改鏈尾指針   return 1;}template <class Type> int SetList<Type>::DelMember ( const Type & x ) {//把集合中成員x刪去。若集合不空且元素x在集合中, 則函數返回1, 否則返回0。   SetNode<Type> *p = first->link,  *q = first;   while ( p != NULL && p->data < x ) { q = p;  p = p->link; }	//循鏈掃描   if ( p != NULL && p->data == x ) {					//找到	 q->link = p->link;							//重新鏈接, , x位置在p所指結點	 if ( p == last ) last = q;							//刪去鏈尾結點時要改鏈尾指針	 delete p;  return 1;							//刪除含x結點   }   else return 0;									//集合中無此元素}template <class Type> void SetList<Type>::operator = ( SetList<Type> & right ) {//復制集合right到this。   SetNode<Type> *pb = right.first->link;				//復制源集合   SetNode<Type> *pa = first = new SetNode<Type>;		//復制目標集合, 創建表頭結點   while ( pb != NULL ) {						//在鏈中逐個結點復制	 pa->link = new SetNode<Type> (pb->data);		//創建this鏈下一個新結點	 pa = pa->link;  pb = pb->link;				// pa進到新結點位置,  pb進到下一結點   }   pa->link = NULL;  last = pa;					//目標鏈表收尾}template <class Type> void SetList<Type>::operator + ( SetList<Type> & right ) {//求集合this與集合right的并, 計算結果在this集合中, right集合不變。   SetNode<Type> *pb = right.first->link;				//right集合的鏈掃描指針   SetNode<Type> *pa = first->link;					//this集合的鏈掃描指針   SetNode<Type> *pc = first;						//結果鏈的頭結點和存放指針   while ( pa != NULL && pb != NULL ) {				//兩鏈數據兩兩比較	 if ( pa->data == pb->data )					//兩集合共有元素	   { pc->link = pa;  pa = pa->link;  pb = pb->link; }	 else if ( pa->data < pb->data )	   { pc->link = pa;  pa = pa->link; }				//this中元素值小	 else					//right集合中元素值小, 創建新結點, 鏈入結果鏈	   { pc->link = new SetNode<Type> (pb->data);  pb = pb->link; }	 pc = pc->link;   }   if ( pa != NULL ) pc->link = pa;					//this集合未掃完, 鏈接   else {									//right集合未掃完,	 while ( pb != NULL )						//向this集合逐個復制	   { pc->link = new SetNode<Type> (pb->data);  pc = pc->link;  pb = pb->link; }	 pc->link = NULL;  last = pc;					//鏈表收尾   }}template <class Type> void SetList<Type>::operator * ( SetList<Type> & right ) {//求兩個集合的交, 結果保存在this集合中, right集合不變   SetNode<Type> *pb = right.first->link;				//right集合的鏈掃描指針   SetNode<Type> *pa = first->link;					//this集合的鏈掃描指針   SetNode<Type> *pc = first;						//結果鏈的頭結點和存放指針   while ( pa != NULL && pb != NULL ) {				//兩鏈數據兩兩比較	 if ( pa->data == pb->data )					//兩集合公有的元素	   { pc = pc->link;  pa = pa->link;  pb = pb->link; }	 else if ( pa->data < pb->data )				//this集合中元素值小, 刪去這個元素	   { pc->link = pa->link;  delete pa;  pa = pc->link; }	 else pb = pb->link;						//right集合中元素值小, pb指針進1   }   while ( pa != NULL )							//逐個刪去this集合中非公共元素	 { pc->link = pa->link;  delete pa;  pa = pc->link; }   last = pc;									//置鏈尾指針}template <class Type> void SetList<Type>::operator - ( SetList<Type> & right ) {//求集合this與集合right的差。結果保留在集合this中, 集合right不變。   SetNode<Type> *pb = right.first->link;				//right集合的鏈掃描指針   SetNode<Type> *pa = first->link;					//this集合的鏈掃描指針   SetNode<Type> *pc = first;						//結果鏈的頭結點和存放指針   while ( pa != NULL && pb != NULL ) {				//兩兩比較	 if ( pa->data == pb->data )					//兩集合共有的元素, 從this鏈中刪去	   { pc->link = pa->link;  delete pa;  pa = pc->link;  pb = pb->link; }	 else if ( pa->data < pb->data )				//this集合中的元素值小, 保留	   { pc = pc->link;  pa = pa->link; }	 else pb = pb->link;						//不要, 向前繼續檢測   }   if ( pa == NULL ) last = pc;						//pa!=NULL時, 原來的last不變}template <class Type> int SetList<Type>::operator == ( SetList<Type> & right ) {//當且僅當集合this與集合right相等時, 函數返回1, 否則返回0。   SetNode<Type> *pb = right.first->link;				//right集合的鏈掃描指針   SetNode<Type> *pa = first->link;					//this集合的鏈掃描指針   while ( pa != NULL && pb != NULL )	 if ( pa->data == pb->data )					//相等, 繼續檢測	   { pa = pa->link;  pb = pb->link; }	 else return 0;							//掃描途中不等時退出, 返回0   if ( pa != NULL || pb != NULL ) return 0;			//鏈不等長時, 返回0   return 1;}template <class Type>ostream& operator <<(ostream& strm, SetList<Type>& a){  SetNode<Type> *p=a.first;  if (a.first!=a.last)  {    do    {     p=p->link;     strm<<p->data<<' ';    }while (p!=a.last);  }  strm<<endl;   return strm;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区久久久久久久久不 | 日本视频一区二区| 中文字幕乱码日本亚洲一区二区| 日韩精品一区二| 日韩欧美一二三区| 欧美一级理论性理论a| 欧美福利视频一区| 欧美一区二区视频在线观看| 91麻豆精品国产91久久久久久 | 日韩精品亚洲一区二区三区免费| 一区二区三区色| 亚洲国产精品麻豆| 三级不卡在线观看| 麻豆国产91在线播放| 国产综合成人久久大片91| 国产在线视视频有精品| 国产99久久久国产精品潘金网站| 成人免费毛片app| 欧美性视频一区二区三区| 欧美精品久久一区二区三区| 日韩一区二区电影| 在线成人av网站| 久久网这里都是精品| 国产精品色在线| 亚洲成人激情av| 国产jizzjizz一区二区| 粉嫩av一区二区三区在线播放 | 天天综合色天天| 精一区二区三区| 成人免费毛片高清视频| 精品视频在线免费看| 欧美电影免费观看高清完整版在| 国产精品盗摄一区二区三区| 午夜视频久久久久久| 国产一区在线观看视频| 色婷婷综合在线| 久久亚洲捆绑美女| 一区二区三区小说| 国产乱国产乱300精品| 欧美午夜精品电影| 国产喂奶挤奶一区二区三区| 亚洲午夜私人影院| 成人少妇影院yyyy| 91精品久久久久久蜜臀| 国产精品成人免费在线| 精品无人码麻豆乱码1区2区| 91成人看片片| 中文字幕一区二区三区四区不卡 | 国产亚洲欧美日韩日本| 一区二区久久久久| 成人污污视频在线观看| 日韩欧美一二三| 一区二区在线免费| 成人免费看片app下载| 日韩色视频在线观看| 一区二区三区日韩精品视频| 粉嫩在线一区二区三区视频| 日韩欧美国产一区二区在线播放 | 狠狠色综合播放一区二区| av午夜一区麻豆| 琪琪久久久久日韩精品| 成人国产精品免费观看视频| 精品国产一区二区三区忘忧草| 一区二区三区精品在线观看| 不卡的电影网站| 日本一区二区三区国色天香| 韩国一区二区三区| 日韩一级视频免费观看在线| 午夜精品一区二区三区三上悠亚| 91网站在线播放| 亚洲欧洲另类国产综合| 从欧美一区二区三区| 国产日韩影视精品| 国产伦精品一区二区三区免费迷 | 国产91精品一区二区| 精品日产卡一卡二卡麻豆| 免费成人美女在线观看.| 欧美日韩一区不卡| 亚洲第一福利一区| 欧美日韩卡一卡二| 日韩不卡在线观看日韩不卡视频| 6080午夜不卡| 首页国产欧美日韩丝袜| 91精品国产一区二区| 久久99日本精品| 久久色在线观看| 国产成人精品免费在线| 国产精品福利影院| 在线欧美日韩精品| 午夜一区二区三区视频| 6080午夜不卡| 久久国产成人午夜av影院| 精品国产一区二区精华| 成人亚洲一区二区一| 综合久久一区二区三区| 91视频国产观看| 视频一区二区三区在线| 精品入口麻豆88视频| 成人免费av资源| 亚洲国产美女搞黄色| 91精品国产综合久久香蕉的特点| 国产精品99久久久久| 一区二区三区资源| 7777精品伊人久久久大香线蕉完整版 | 欧美经典一区二区三区| 99久久精品国产毛片| 亚洲综合图片区| 精品国产百合女同互慰| 色综合久久久久久久| 老鸭窝一区二区久久精品| 成人免费一区二区三区在线观看| 91精品在线免费观看| 国产精品亚洲视频| 亚洲v日本v欧美v久久精品| 久久久www成人免费毛片麻豆 | 欧美亚一区二区| 久草这里只有精品视频| 亚洲女女做受ⅹxx高潮| 久久婷婷国产综合国色天香| 欧美无砖砖区免费| 国产成人av自拍| 视频在线在亚洲| 中文字幕中文字幕中文字幕亚洲无线| 欧美蜜桃一区二区三区| www.成人在线| 国内精品久久久久影院薰衣草| 一区二区成人在线| 国产欧美精品区一区二区三区 | av动漫一区二区| 亚洲综合一二三区| 精品91自产拍在线观看一区| 日韩午夜小视频| 国产色产综合色产在线视频| 欧美日韩一本到| a4yy欧美一区二区三区| 国产成人免费视频网站高清观看视频 | 国产suv精品一区二区三区| 日韩电影在线一区| 亚洲精品成人在线| 亚洲欧洲精品天堂一级| 亚洲国产精品黑人久久久| 欧美一级在线视频| 欧美美女直播网站| 欧美性一区二区| 91国在线观看| 欧美在线色视频| 欧美午夜片在线观看| 91亚洲大成网污www| 99re免费视频精品全部| av高清不卡在线| eeuss影院一区二区三区| 成人av在线观| 91蜜桃网址入口| 91在线丨porny丨国产| 91在线观看高清| 色94色欧美sute亚洲线路一久| 91国产视频在线观看| 色www精品视频在线观看| 在线观看亚洲精品| 欧美日韩中文一区| 51精品国自产在线| 日韩欧美国产麻豆| 国产三级久久久| 亚洲欧洲av色图| 偷拍日韩校园综合在线| 人妖欧美一区二区| 国产激情一区二区三区| 成人白浆超碰人人人人| 日本乱人伦一区| 555www色欧美视频| 久久综合av免费| 亚洲欧洲美洲综合色网| 视频在线在亚洲| 国产精品18久久久久久久久 | 亚洲图片有声小说| 五月开心婷婷久久| 精品中文字幕一区二区小辣椒| 国产成人av网站| 色婷婷国产精品综合在线观看| 欧美日韩精品综合在线| 久久久午夜精品理论片中文字幕| 久久五月婷婷丁香社区| 亚洲免费观看在线视频| 免费一级欧美片在线观看| 高清久久久久久| 欧美人妇做爰xxxⅹ性高电影| 2欧美一区二区三区在线观看视频| 国产精品人人做人人爽人人添| 亚洲一区二区三区影院| 国产一区不卡视频| 在线精品亚洲一区二区不卡| 337p日本欧洲亚洲大胆精品| 亚洲一区二区三区中文字幕在线| 老司机一区二区| 色香蕉久久蜜桃| 精品动漫一区二区三区在线观看| 亚洲乱码国产乱码精品精98午夜| 国产一区在线精品| 欧美精品久久99| 亚洲精品中文字幕在线观看|