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

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

?? p93_96.cpp

?? 清華大學-數據結構(課件+習題+課后答案)
?? CPP
字號:
		#include <iostream.h>
                #include <stdio.h>

		enum Boolean { False, True };
		struct Triple { int row, col;  float value; };					//三元組類的定義
		class Matrix;										//稀疏矩陣類的前視聲明

		class MatrixNode {									//矩陣結點類的定義
		friend class Matrix;
		friend istream & operator >> ( istream &, Matrix & );			//矩陣讀入
                friend ostream & operator << ( ostream &, Matrix & );
		private:
		   MatrixNode *down, *right;							//列/行鏈表指針
		   Boolean head;									//結點類型
		   union { Triple triple;  MatrixNode *next; };				//無名聯合
		   MatrixNode ( Boolean, Triple* );						//構造函數
		};

		MatrixNode::MatrixNode ( Boolean b, Triple *t ){				//構造函數
		   head = b;									//結點類型
		   if ( b ) { right = next = this; }						//各行/列鏈表的表頭結點
		   else triple = *t;									//頭結點鏈表的表頭或非零元素結點
		}
		typedef MatrixNode *MatrixNodePtr;						//一個指針數組

		class Matrix {									//稀疏矩陣的類定義
		friend istream & operator >> ( istream &, Matrix & );
                friend ostream & operator << ( ostream &, Matrix & );
		public:
		   ~Matrix ( );									//析構函數
		private:
		   MatrixNode *headnode; 							//稀疏矩陣的表頭
		};


		istream & operator >> ( istream & is, Matrix & matrix )	//讀入稀疏矩陣, 建立它的鏈表表示
		{
		   Triple s;  int p;
		   is >> s.row >> s.col >> s.value; 						//讀入矩陣行數、列數和非零元素個數
		   if ( s.row > s.col ) p = s.row;						//確定行/列鏈表表頭結點個數p
		   else p = s.col;									// p = max { s.row, s.col }
		   matrix.headnode = new MatrixNode ( False, &s );				//創建表的表頭結點
		   if ( !p ) { matrix.headnode->right = matrix.headnode;  return is; }	//至少一行或一列
		   MatrixNodePtr *H = new MatrixNodePtr [ p ];				//初始化表頭指針數組,指向各鏈表頭
		   for ( int i=0; i<p; i++ ) H[i] = new MatrixNode ( True, 0 );		//指向各鏈表頭結點
		   int CurrentRow = 0;
		   MatrixNode *last = H[0];							//last為當前行的最后結點指針
		   for ( i=0; i<s.value; i++ ) {							//輸入三元組, s.value給出三元組個數
			 Triple t;
		 is >> t.row >> t.col >> t.value;					//輸入三元組
			 if ( t.row > CurrentRow ) {						//行號大于當前行號,閉合當前行
			    last->right = H[CurrentRow];					//在行的方向向表頭結點拉鏈
			    CurrentRow = t.row;  last = H[CurrentRow];			//當前行改變為新的一行
			 }
			 last = last->right = new MatrixNode ( False, &t );			//新結點鏈入行鏈表,last跟上
			 H[t.col]->next = H[t.col]->next->down = last;			//鏈入列鏈表,next記下該結點地址
		   }
		   last->right = H[CurrentRow];						//閉合最后一行
		   for ( i=0; i<s.col; i++ ) H[i]->next->down = H[i];			//閉合所有列鏈表
		   for ( i=0; i<p-1; i++ ) H[i]->next = H[i+1];				//所有表頭結點鏈接在一起
		   H[p-1]->next = matrix.headnode;  matrix.headnode->right = H[0];
		   delete [ ] H;
		   return is;
		}


	      /*	if ( first != NULL ) {								//鏈表不空
		   CircListNode<Type> *second = first->link;			//循環鏈表的第二個結點
		   first->link = av;    av = second;					//第一個結點鏈接到av
		   first = NULL;
		}


		if ( av == NULL ) newnode = new CircListNode<Type>;	//可利用空間表為空,動態分配
		else { newnode = av;  av = av->link; }				//不空,從可利用空間表分配
		*/
                MatrixNode *av;

		Matrix::~Matrix ( ) {
		//將所有結點回收到可利用空間表中, 這個表是用right域鏈接的。av是一個具有MatrixNode*
		//類型的全局變量, 且指向它的前端第一個結點。
		   if ( headnode == NULL ) return;					//空鏈表, 無法回收
		   MatrixNode *x = headnode->right, *y;
		   headnode->right = av;  av = headnode;				//回收表頭結點的循環鏈表
		   while ( x != headnode ) {						//按行回收各行的循環鏈表
		      y = x->right;  x->right = av;  av = y;			//回收行 (循環) 鏈表
		      x = x->next;							//下一行
		   }
		   headnode = NULL;
		}

		ostream & operator << ( ostream & os, Matrix & matrix )
		{
		    MatrixNode *current = matrix.headnode , *temp;
		    cout << "row:  " << current->triple.row << endl;
		    cout << "column: " << current->triple.col << endl;
		    cout << "nonzero: " << current->triple.value << endl;
		    cout << "order in column:" << endl;
		    temp = current = current->right;
		    for (int column = 0 ; column < matrix.headnode->triple.col; column++) {
			cout << "column " << column << " : " ;
			temp = temp->down ;
			while ( temp != current ) {
			    cout << "(" << temp->triple.row << ",";
			    cout << temp->triple.col << ",";
			    cout << temp->triple.value << ") ";
			    temp = temp->down;
			};
			cout << endl;
			temp = current = current->next;
		    }

		    cout << "order in row:" << endl;
		    temp = current = current->right;
		    for (int row = 0; row < matrix.headnode->triple.row; row++) {
			cout << "row " << row << " : " ;
			temp = temp->right ;
			while ( temp != current ) {
			    cout << "(" << temp->triple.row << ",";
			    cout << temp->triple.col << ",";
			    cout << temp->triple.value << ") ";
			    temp = temp->right;
			};
			cout << endl;
			temp = current = current->next;
		    }


		    return os;
		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清不卡一区二区三区| 亚洲第一福利一区| 久久久久久麻豆| 精品免费日韩av| 亚洲精品一区二区三区精华液| 6080日韩午夜伦伦午夜伦| 欧美老女人第四色| 欧美tk—视频vk| 久久久精品综合| 日韩一区在线看| 亚洲福利视频导航| 美国毛片一区二区| 国产在线精品一区二区| 夫妻av一区二区| 91农村精品一区二区在线| 欧美三片在线视频观看| 日韩视频免费直播| 国产人成一区二区三区影院| 中文字幕五月欧美| 午夜在线成人av| 国产精品996| 91传媒视频在线播放| 欧美一区二区三区公司| 国产日产精品一区| 亚洲国产精品天堂| 韩国欧美国产1区| 99在线视频精品| 在线播放/欧美激情| 国产欧美一二三区| 首页国产欧美久久| 国产白丝网站精品污在线入口| 色婷婷综合久久久中文字幕| 91精品国模一区二区三区| 日本一区二区三区四区在线视频| 亚洲精品国产精华液| 激情五月激情综合网| 日本韩国欧美国产| 国产午夜亚洲精品羞羞网站| 亚洲国产精品麻豆| 丁香桃色午夜亚洲一区二区三区| 欧美影视一区在线| 国产精品青草久久| 久久精品免费看| 91福利资源站| 国产精品国产三级国产aⅴ无密码| 天天影视涩香欲综合网| av动漫一区二区| 精品免费视频.| 日韩一区精品视频| 色八戒一区二区三区| 久久久亚洲精品一区二区三区| 亚洲最新在线观看| 91网站黄www| 国产喷白浆一区二区三区| 日本视频中文字幕一区二区三区| 色域天天综合网| 中文字幕欧美激情一区| 老司机精品视频线观看86| 欧美巨大另类极品videosbest | 不卡av免费在线观看| 91精品国产入口| 亚洲精品中文在线影院| 波多野结衣91| 国产精品福利一区二区| 狠狠色丁香婷综合久久| 日韩欧美一级在线播放| 日本欧美一区二区三区乱码| 精品污污网站免费看| 亚洲国产cao| 欧美精品三级在线观看| 亚洲香肠在线观看| 精品视频在线免费看| 亚洲国产一区在线观看| 欧美性受xxxx| 亚洲二区在线观看| 欧美日韩国产成人在线91| 一区二区三区四区av| 欧美影视一区在线| 视频在线观看国产精品| 日韩欧美精品在线| 午夜激情久久久| 日韩精品一区二区三区视频播放| 美日韩一区二区| 久久九九国产精品| 成人18视频日本| 亚洲视频1区2区| 欧美视频一区二| 蜜臀国产一区二区三区在线播放| 精品日韩99亚洲| 国产不卡一区视频| 亚洲欧美综合另类在线卡通| 91黄色在线观看| 日韩精品一区第一页| 久久久久九九视频| 99天天综合性| 天天操天天综合网| 久久影院午夜论| 一本色道a无线码一区v| 香蕉加勒比综合久久| 久久久久国产精品免费免费搜索| 国产成人免费视频网站 | 亚洲精品乱码久久久久| 69堂亚洲精品首页| 国产一区二区剧情av在线| 中文字幕日本乱码精品影院| 欧美日韩国产美女| 国产乱子伦一区二区三区国色天香| 欧美激情在线一区二区| 色综合视频一区二区三区高清| 亚洲成va人在线观看| 久久精品视频在线免费观看| 色综合久久99| 国产在线精品一区二区| 亚洲一区免费观看| 久久久av毛片精品| 欧美精品18+| 99视频一区二区| 免费成人小视频| 一区二区三区丝袜| 中文字幕欧美国产| 日韩一级片在线播放| 91免费视频网| 国产不卡高清在线观看视频| 日韩在线观看一区二区| 亚洲人成精品久久久久| 久久精品视频一区二区| 91精品国产综合久久蜜臀| 91尤物视频在线观看| 国产一区二区看久久| 日本视频免费一区| 亚洲成人1区2区| 亚洲二区在线观看| 自拍偷在线精品自拍偷无码专区| 欧美日韩国产片| 欧美日韩一区高清| 成人丝袜18视频在线观看| 日韩va欧美va亚洲va久久| 夜夜揉揉日日人人青青一国产精品| 久久午夜色播影院免费高清| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲一卡二卡三卡四卡| 成人欧美一区二区三区白人| 久久久久久久久岛国免费| 日韩视频免费观看高清完整版在线观看| 91丨九色丨蝌蚪富婆spa| 国产成人午夜高潮毛片| 国模娜娜一区二区三区| 日韩成人精品在线| 天堂蜜桃91精品| 天天综合色天天综合色h| 天天射综合影视| 水蜜桃久久夜色精品一区的特点| 亚洲国产成人精品视频| 亚洲sss视频在线视频| 视频一区在线视频| 免费高清视频精品| 久久精品99久久久| 国产精品资源在线看| 国产精品乡下勾搭老头1| 国产成人午夜精品影院观看视频| 丁香六月久久综合狠狠色| 9l国产精品久久久久麻豆| 91福利社在线观看| 日韩午夜精品电影| 亚洲国产精品黑人久久久| 国产精品久久三| 一区二区免费在线| 日本三级亚洲精品| 国产呦萝稀缺另类资源| 成人午夜电影网站| 日本久久电影网| 日韩欧美区一区二| 久久精品夜色噜噜亚洲aⅴ| 久久精品免视看| 亚洲日本乱码在线观看| 午夜精品久久久久影视| 精品一二三四区| 91蝌蚪porny| 欧美精品一区二区久久久| 国产亚洲精品aa午夜观看| 亚洲精品中文在线观看| 日韩va欧美va亚洲va久久| 成人黄色电影在线| 91精品国产色综合久久| 国产精品久久久久久久裸模| 日日摸夜夜添夜夜添精品视频| 国内欧美视频一区二区| 欧美综合久久久| 国产亚洲女人久久久久毛片| 亚洲男女毛片无遮挡| 久久成人免费日本黄色| 色乱码一区二区三区88 | 国产精品白丝jk白祙喷水网站| 色综合一区二区三区| 欧美成人艳星乳罩| 亚洲一区精品在线| 成人精品一区二区三区中文字幕 | 久久er精品视频| 日本精品免费观看高清观看| 久久亚洲综合av|