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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? graph.cpp

?? 數(shù)據(jù)結(jié)構(gòu)算法集C++版.好東西大家一起分享。
?? CPP
字號:
#include<iostream>
#include <string>                  //引入標(biāo)準(zhǔn)庫中的頭文件
#include "graph.h"                //引入頭文件
using namespace std;


/*   
 *前置條件:圖不存在
 *輸    入:無 
 *功    能:圖的初始化
 *輸    出:無
 *后置條件:構(gòu)造一個空的圖
 */
template <class T>
MGraph<T>::MGraph(T a[], int n, int e) 
{
 vertexNum=n;                 //頂點(diǎn)數(shù)
 arcNum=e;                    //邊數(shù)
 int i,j,k;
for (i=0; i<vertexNum; i++) 
  vertex[i]=a[i];
 for (i=0; i<vertexNum; i++)    //初始化鄰接矩陣
	 for (j=0; j<vertexNum; j++)
     arc[i][j]=0;             
   for (k=0; k<arcNum; k++)   //依次輸入每一條邊,并修改鄰接矩陣的相應(yīng)元素
	   {
cin>>i>>j;                    //邊依附的兩個頂點(diǎn)的序號
arc[i][j]=1;                  //置有邊標(biāo)志
arc[j][i]=1;    
       }
}

/*   
 *前置條件:圖已存在
 *輸    入:無
 *功    能:輸出圖中所有頂點(diǎn)的數(shù)據(jù)信息
 *輸    出:圖中所有頂點(diǎn)的數(shù)據(jù)信息
 *后置條件:圖保持不變
 */
template <class T>
void MGraph<T>::PutVex( )           //取所有頂點(diǎn)            
{                                   //假設(shè)源點(diǎn)是第0個頂點(diǎn),即頂點(diǎn)序號是0
	int i=0;
    for(i=0;i<vertexNum;i++)
	   {                            //輸出圖中所有的頂點(diǎn)
          cout<<vertex[i]<<"\n";
	   }
}
/*   
 *前置條件:圖已存在
 *輸入:頂點(diǎn)i
 *功能:輸出圖中頂點(diǎn)i的數(shù)據(jù)信息
 *輸出:圖中頂點(diǎn)i的數(shù)據(jù)信息
 *后置條件:圖保持不變
 */
template <class T>
void MGraph<T>::GetVex(int i,T v[MaxSize])      //取頂點(diǎn)i             
{                                               //假設(shè)源點(diǎn)是第0個頂點(diǎn),即頂點(diǎn)序號是0
	v[i]=vertex[i];
    if (i>vertexNum) throw "位置";              //頂點(diǎn)i不存在則拋出異常
	else
		cout<<v[i]<<"\n";                       //返回頂點(diǎn)i	
}

/*  
 *前置條件:圖已存在
 *輸    入:頂點(diǎn)name,位置num
 *功    能:在圖中num位置插入一個頂點(diǎn)name 
 *輸    出:如果插入不成功,拋出異常
 *后置條件:如果插入成功,圖中增加了一個頂點(diǎn)
 */
template <class T>
void MGraph<T>::InsertVex(int num,T name)        //在圖中插入一個頂點(diǎn),其編號為i,值為value
{                                                //假設(shè)源點(diǎn)是第0個頂點(diǎn),即頂點(diǎn)序號是0
 if ( num<0|| num>vertexNum) throw "位置";       //如果num輸入不正確拋出異常
 int row;                                        //行
 int col;                                        //列
 int numv;                                       //最后一個頂點(diǎn)所在的位置
	 numv = vertexNum-1;
 if(num>-1)                                      //num存在
  vertexNum++;                                   //頂點(diǎn)數(shù)加1
for(int i=numv;i>num-1;i--)                      //i從最后一個頂點(diǎn)的下一個位置開始循環(huán)
	vertex[i]=vertex[i-1];                       //把從num位置的頂點(diǎn)到最后一個頂點(diǎn)均向后移一位
	vertex[num]=name;                            //把要插入的頂點(diǎn)的值放在num位置上
 for(row=numv;row>=0;row--)                      //把從num列到最后一列的元素均向下移一列
  {
    for(col=numv;col>=num;col--)
		  arc[row][col+1]=arc[row][col];
     arc[row][num]=10000;
  }
  for(row=numv;row>=num;row--)                   //把從num行到最后一行的元素均向下移一行
	  for(col=0;col<=numv+1;col++)
		  arc[row+1][col]=arc[row][col];		
for(col=0;col<vertexNum;col++)
		  arc[num][col]=10000;                   //把num位置所在的行、列的值均置為無窮大
  
 }
/*   
 *前置條件:圖已存在
 *輸    入:頂點(diǎn)pos 
 *功    能:在圖中刪除頂點(diǎn)pos 
 *輸    出:如果刪除不成功,拋出異常
 *后置條件:如果刪除成功,圖中減少了一個頂點(diǎn),相應(yīng)頂點(diǎn)所建立的邊也消去
 */
template <class T>
void MGraph<T>::DeleteVex(int pos)              //刪除第pos個頂點(diǎn)
{                                               //假設(shè)源點(diǎn)是第0個頂點(diǎn),即頂點(diǎn)序號是0
 if ( pos<0||  pos>MaxSize) throw "位置";       //如果pos輸入不正確拋出異常
 int row;                                       //行
 int col;                                       //列
 int numv=vertexNum;                            //numv等于頂點(diǎn)數(shù)
  if(pos>-1){                                    //pos存在 
   for(int i=pos;i<numv-1;i++)
   vertex[i]=vertex[i+1];                       //把從pos到最后的每個點(diǎn)的位置依次向前移一位
   vertexNum--;                                 //頂點(diǎn)數(shù)減1
   for(row=0;row<numv;row++)
   {
     for(col=pos;col<numv;col++)
		  arc[row][col]=arc[row][col+1];        //把從pos列到最后一列的元素均向前移一列
     arc[row][numv-1]=10000;                    //把pos所在的列上的值置為無窮大
   }
   for(row=pos;row<numv;row++) 
	  for(col=0;col<numv;col++)
		  arc[row][col]=arc[row+1][col];        //把從pos行到最后一行的元素均向上移一行
  } 
}
/*   
 *前置條件:圖已存在
 *輸    入:頂點(diǎn)n、w 
 *功    能:在圖中刪除頂點(diǎn)n、w 依附的邊 
 *輸    出:如果刪除不成功,拋出異常
 *后置條件:如果刪除成功,圖中減少了一條邊
 */
template <class T>
void MGraph<T>::DeleteArc(int n, int w)        //在圖中刪除一條邊,其依附的兩個頂點(diǎn)的編號為i和j
{
 if ( n>MaxSize||  w>MaxSize) throw "位置";    //如果輸入不正確拋出異常
	 arc[n][w]=arc[w][n]=10000;   
}
/*   
 *前置條件:圖已存在
 *輸    入:頂點(diǎn)i、j
 *功    能:在圖中插入頂點(diǎn)i、j及其所依附的邊 
 *輸    出:如果插入不成功,拋出異常
 *后置條件:如果插入成功,圖中增加了一條邊
 */
template <class T>
void MGraph<T>::InsertArc(int i, int j,int n)   //在圖中插入一條邊,其依附的兩個頂點(diǎn)的編號為i和j
{
  if ( i>MaxSize||  j>MaxSize) throw "位置";   //如果輸入不正確拋出異常	
  arc[i][j]=n;
  arc[j][i]=n;
  cout<<"從"<<vertex[i]<<"到"<<vertex[j]<<"的路徑長度為:"<<arc[i][j]<<"\n"; //輸出插入的兩頂點(diǎn)之間的路徑
} 
/*   
 *前置條件:圖已存在
 *輸    入:遍歷的起始頂點(diǎn)v
 *功    能:從頂點(diǎn)v出發(fā)深度優(yōu)先遍歷圖
 *輸    出:圖中頂點(diǎn)的一個線性排列
 *后置條件:圖保持不變
 */   
int visited[MaxSize];
template <class T>
void MGraph<T>::DFSTraverse(int v)     //深度優(yōu)先遍歷圖
{
	
	if ( v>vertexNum) throw "位置";   //如果輸入不正確拋出異常
     cout<<vertex[v]<<" ";
	  visited[v]=1;                    //已訪問v頂點(diǎn)	  
      for (int j=0; j<vertexNum; j++)
	  {
		 if (arc[v][j]<10000 && visited[j]==0)
	       DFSTraverse(j); 
	  }	 
}     

/*   
 *前置條件:圖已存在
 *輸    入:遍歷的起始頂點(diǎn)v
 *功    能:從頂點(diǎn)v出發(fā)廣度優(yōu)先遍歷圖
 *輸    出:圖中頂點(diǎn)的一個線性排列
 *后置條件:圖保持不變
 */ 
int visited2[MaxSize];
template <class T>
void MGraph<T>::BFSTraverse(int v)     //廣度優(yōu)先遍歷圖
{
 //
  if ( v>vertexNum) throw "位置";      //如果輸入不正確拋出異常
  int front=-1;
  int rear=-1;                         //初始化隊(duì)列,假設(shè)隊(duì)列采用順序存儲且不會發(fā)生溢出
  cout<<vertex[v]<<" ";                //被訪問頂點(diǎn)入隊(duì)
  visited2[v]=1;  
  int Q[MaxSize];
  Q[++rear]=v; 
  while (front!=rear)
  {
     v=Q[++front];                     //將隊(duì)頭元素出隊(duì)并送到v中
     for (int j=0; j<vertexNum; j++)
       if (arc[v][j]<10000 && visited2[j]==0 ){
          cout<<vertex[j]<<" ";
		  visited2[j]=1; 
		  Q[++rear]=j;
       }
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.亚洲色图.com| 国产黑丝在线一区二区三区| 欧美人与z0zoxxxx视频| 偷拍亚洲欧洲综合| 制服丝袜中文字幕一区| 免费欧美日韩国产三级电影| 精品99一区二区| 国产成a人亚洲精| 18成人在线观看| 欧美亚洲国产bt| 男人的天堂亚洲一区| 精品国产电影一区二区| 成人久久视频在线观看| 一级女性全黄久久生活片免费| 欧美日韩国产综合一区二区| 日韩成人伦理电影在线观看| 精品国内片67194| 99精品热视频| 日本vs亚洲vs韩国一区三区二区 | 奇米色777欧美一区二区| 日韩一级大片在线观看| 国产传媒一区在线| 亚洲男人的天堂在线aⅴ视频| 欧美精品色一区二区三区| 精品中文字幕一区二区| 中文字幕中文乱码欧美一区二区| 一本一道久久a久久精品| 日韩精品国产精品| 国产农村妇女精品| 欧美日韩成人综合在线一区二区| 另类小说色综合网站| 亚洲丝袜精品丝袜在线| 日韩视频在线永久播放| 99精品久久只有精品| 久久激情五月激情| 亚洲免费看黄网站| 精品国产制服丝袜高跟| 91久久一区二区| 国产精品亚洲一区二区三区妖精| 亚洲一区在线视频| 国产欧美一区二区精品秋霞影院| 欧美日韩不卡一区| av中文字幕在线不卡| 日韩av电影天堂| 亚洲蜜桃精久久久久久久| 日韩欧美中文字幕一区| 成人三级在线视频| 青青草91视频| 亚洲一卡二卡三卡四卡五卡| 中文字幕av一区二区三区免费看| 7777精品伊人久久久大香线蕉超级流畅| 成人午夜av电影| 国产一区二区三区久久悠悠色av| 亚洲国产wwwccc36天堂| 亚洲人成人一区二区在线观看| 久久亚洲春色中文字幕久久久| 欧美私模裸体表演在线观看| 99精品一区二区三区| 成人性视频免费网站| 久久99精品久久只有精品| 爽好多水快深点欧美视频| 亚洲日韩欧美一区二区在线| 欧美经典三级视频一区二区三区| 精品国产制服丝袜高跟| 911精品产国品一二三产区| 欧美亚洲一区三区| 色综合久久中文综合久久牛| www.av亚洲| 福利一区在线观看| 国产中文一区二区三区| 蜜桃视频在线观看一区| 五月天欧美精品| 午夜成人免费视频| 亚洲一区二区三区小说| 亚洲一区视频在线| 夜夜亚洲天天久久| 久久精品一区四区| 日本丶国产丶欧美色综合| 福利一区二区在线观看| 精品一区二区三区免费观看 | 久久日韩粉嫩一区二区三区| 欧美一区二区国产| 日韩视频一区二区三区在线播放| 欧美日韩精品免费观看视频| 欧美丝袜自拍制服另类| 欧美少妇xxx| 在线综合亚洲欧美在线视频| 7777精品伊人久久久大香线蕉经典版下载 | 日韩女同互慰一区二区| 欧美大片在线观看一区二区| www国产成人| 国产精品久久久久一区| 亚洲女人****多毛耸耸8| 中文字幕一区二区三区精华液 | 欧美私模裸体表演在线观看| 欧美亚洲动漫精品| 欧美一区二区在线免费观看| 久久伊人蜜桃av一区二区| 国产精品免费aⅴ片在线观看| 专区另类欧美日韩| 亚洲成人av福利| 激情综合五月婷婷| 成人一区二区三区中文字幕| 一本在线高清不卡dvd| 欧美老女人在线| 国产亚洲污的网站| 亚洲激情第一区| 美女视频免费一区| 91视频一区二区三区| 538在线一区二区精品国产| 久久青草欧美一区二区三区| 国产精品萝li| 蜜桃视频在线一区| 99精品偷自拍| 精品少妇一区二区三区在线视频| 久久亚洲二区三区| 亚洲午夜羞羞片| 国产精品自拍毛片| 欧美性极品少妇| 久久久久国产成人精品亚洲午夜| 亚洲美女免费视频| 久久se这里有精品| 91久久精品一区二区三区| 欧美一区二区三区在线| 国产精品入口麻豆九色| 五月婷婷久久综合| 成人午夜视频网站| 欧美一级电影网站| 亚洲欧美另类图片小说| 青娱乐精品视频在线| 91一区在线观看| 精品国产不卡一区二区三区| 亚洲一区在线电影| 波多野洁衣一区| 久久久久国产精品麻豆ai换脸| 亚洲国产精品一区二区久久 | 欧美福利视频导航| 中文字幕亚洲欧美在线不卡| 老汉av免费一区二区三区| 91啪亚洲精品| 国产欧美一区二区三区在线看蜜臀| 一区二区国产视频| av一二三不卡影片| 久久精品日产第一区二区三区高清版 | 日本亚洲欧美天堂免费| 色域天天综合网| 国产欧美综合色| 蜜臀av性久久久久av蜜臀妖精| 欧美综合久久久| ...av二区三区久久精品| 国产精品一区二区你懂的| 欧美精品1区2区| 亚洲二区在线观看| 一本一本大道香蕉久在线精品 | 日韩二区三区四区| 精品视频123区在线观看| 专区另类欧美日韩| caoporm超碰国产精品| 国产精品私房写真福利视频| 国产成人综合自拍| 日本一区二区高清| 国产一区91精品张津瑜| 久久久久久久久免费| 国产一区在线精品| 欧美不卡一区二区三区| 麻豆精品视频在线观看免费| 日韩久久久精品| 精品一区二区在线视频| 精品少妇一区二区三区视频免付费| 蜜臀av性久久久久蜜臀av麻豆| 欧美一级欧美一级在线播放| 日韩成人dvd| 精品国产乱码久久久久久蜜臀| 老司机精品视频线观看86| 精品久久国产老人久久综合| 久草这里只有精品视频| 久久久久久久综合| 成人ar影院免费观看视频| 日韩美女久久久| 在线观看视频一区二区欧美日韩| 亚洲一区二区三区三| 欧美精品色一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美成人a在线| 成人教育av在线| 一区二区三区免费网站| 欧美视频一区二区在线观看| 麻豆久久一区二区| 中文字幕的久久| 欧美系列日韩一区| 美女国产一区二区三区| 日本一区二区在线不卡| 99国产精品久久久久| 亚洲第四色夜色| 久久这里只有精品视频网| 波多野结衣一区二区三区| 亚洲第一狼人社区| 国产夜色精品一区二区av| 色偷偷一区二区三区| 日本成人在线看|