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

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

?? p93_96.cpp

?? 殷人昆 數據結構 一些書中的源代碼 系某師兄所做 c++版
?? 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一区二区三区免费野_久草精品视频
奇米色一区二区三区四区| 日韩伦理免费电影| 欧美日本乱大交xxxxx| 色婷婷久久99综合精品jk白丝| 国产成人综合网| 成人性生交大片免费看在线播放| 精品午夜久久福利影院| 国产一区二区精品久久99| 国产另类ts人妖一区二区| 成人影视亚洲图片在线| 成人免费精品视频| 99精品欧美一区二区三区小说| 91丝袜美腿高跟国产极品老师 | 7799精品视频| 91精品国模一区二区三区| 69成人精品免费视频| 日韩无一区二区| 国产精品网曝门| 亚洲精品久久久久久国产精华液| 亚洲亚洲精品在线观看| 免费一级片91| 成人av在线播放网站| 欧美综合天天夜夜久久| 日韩欧美中文字幕公布| 日本一区二区成人| 亚洲成人免费在线| 国产一区二区0| 色狠狠一区二区三区香蕉| 日韩欧美一区中文| 国产精品午夜在线| 日韩和欧美的一区| 成人av电影在线网| 日韩三级高清在线| 亚洲精品成人少妇| 国产麻豆一精品一av一免费| 97se亚洲国产综合在线| 欧美va天堂va视频va在线| 亚洲手机成人高清视频| 狠狠v欧美v日韩v亚洲ⅴ| 色天天综合久久久久综合片| 欧美tickling网站挠脚心| 亚洲视频狠狠干| 韩国理伦片一区二区三区在线播放| 99久久免费视频.com| 精品国产免费视频| 性久久久久久久久久久久 | 中文字幕不卡在线| 日韩电影网1区2区| 在线区一区二视频| 国产精品久久久久9999吃药| 麻豆精品一二三| 欧美喷潮久久久xxxxx| 1024国产精品| 成人爽a毛片一区二区免费| 日韩无一区二区| 日韩成人精品在线观看| 欧美性感一区二区三区| 国产午夜精品久久久久久免费视| 亚洲成人在线免费| 在线亚洲精品福利网址导航| 欧美极品aⅴ影院| 国产一区二区三区电影在线观看| 欧美一级夜夜爽| 午夜伦理一区二区| 日本高清不卡一区| 亚洲激情综合网| 日本国产一区二区| 一区二区三区欧美日韩| 91性感美女视频| 国产精品久久久久久久岛一牛影视| 国产一区二区按摩在线观看| 日韩欧美一区二区视频| 麻豆精品蜜桃视频网站| 欧美成人精精品一区二区频| 麻豆高清免费国产一区| 欧美一区二区观看视频| 久久综合综合久久综合| 精品对白一区国产伦| 国产一区二区按摩在线观看| 久久综合久久鬼色| 成人精品视频一区二区三区| 综合网在线视频| 欧美中文字幕不卡| 日韩中文字幕区一区有砖一区 | 亚洲欧洲国产日韩| 99视频精品在线| 夜夜夜精品看看| 欧美另类一区二区三区| 午夜视频在线观看一区| 日韩欧美你懂的| 成人性色生活片| 亚洲你懂的在线视频| 欧美日韩一级黄| 麻豆国产一区二区| 中文在线一区二区| 欧美性三三影院| 国产毛片精品视频| 一区二区三区中文字幕| 欧美一区二区福利视频| 国产精品99久久久久久久vr| 亚洲欧美自拍偷拍色图| 欧美日韩亚洲高清一区二区| 麻豆精品一二三| 国产精品电影一区二区| 欧美乱妇15p| 播五月开心婷婷综合| 日韩高清不卡一区二区三区| 久久精品在线观看| 欧洲精品在线观看| 国产精品一二三区在线| 一区二区三区四区不卡视频| 欧美成人video| 91丝袜国产在线播放| 激情另类小说区图片区视频区| 亚洲日本在线看| 久久久五月婷婷| 欧美日本一区二区| 97久久精品人人做人人爽50路| 日本成人中文字幕在线视频| 国产精品天天摸av网| 欧美一区二区三区免费大片| 成人av动漫在线| 国产一区二区三区观看| 日韩国产精品大片| 亚洲精品午夜久久久| 久久久久久久久97黄色工厂| 欧美日韩国产成人在线免费| av中文字幕不卡| 国产在线精品国自产拍免费| 天天av天天翘天天综合网| 中文字幕在线播放不卡一区| 精品国产91乱码一区二区三区 | 26uuu欧美| 日韩视频一区二区三区在线播放| 在线一区二区三区四区五区 | 在线欧美日韩精品| proumb性欧美在线观看| 国产真实乱子伦精品视频| 日韩精品欧美成人高清一区二区| 自拍偷拍国产精品| 国产精品久久久久久久浪潮网站 | 欧美日韩中文字幕一区二区| 国产91精品在线观看| 国产麻豆视频精品| 国产一区二区三区在线观看免费 | 日本韩国一区二区| 色激情天天射综合网| 99视频精品在线| 91一区二区在线观看| 91免费在线看| 欧美性三三影院| 欧美色国产精品| 在线成人午夜影院| 欧美日韩成人在线| 欧美一区二区三级| 日韩三级视频中文字幕| 久久久三级国产网站| 久久精品欧美日韩| 国产精品乱码一区二三区小蝌蚪| 中文av一区特黄| 一区二区三区日韩精品视频| 亚洲大片精品永久免费| 日韩av一区二区在线影视| 九色综合狠狠综合久久| 国产成人免费视频一区| a4yy欧美一区二区三区| 欧美性感一区二区三区| 欧美精品日韩一本| 久久先锋影音av鲁色资源网| 国产女人aaa级久久久级| 中文字幕在线播放不卡一区| 亚洲一区二区四区蜜桃| 免费看欧美女人艹b| 国产精品12区| 91亚洲精品久久久蜜桃| 4438亚洲最大| 国产色综合一区| 亚洲影视在线观看| 麻豆精品新av中文字幕| 成人精品一区二区三区四区 | 久久综合色鬼综合色| 亚洲天堂精品在线观看| 蜜臀va亚洲va欧美va天堂| 成人亚洲一区二区一| 精品视频免费在线| 久久色.com| 亚洲国产日韩a在线播放性色| 麻豆视频一区二区| 一本一道综合狠狠老| 精品国产区一区| 一区二区久久久久久| 国产一区二区主播在线| 欧美性极品少妇| 国产精品看片你懂得| 日本美女一区二区三区视频| 不卡av在线网| 国产午夜精品一区二区三区视频| 丝袜亚洲另类丝袜在线| 91麻豆视频网站| 欧美高清在线一区二区|