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

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

?? dijkstraview.cpp

?? DijkstraPrj算法的實現
?? CPP
字號:
// DijkstraView.cpp : implementation of the CDijkstraView class
//

#include "stdafx.h"
#include "Dijkstra.h"

#include "DijkstraDoc.h"
#include "DijkstraView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


/////////////////////////////////////////////////////////////////////////////
// CDijkstraView

IMPLEMENT_DYNCREATE(CDijkstraView, CView)

BEGIN_MESSAGE_MAP(CDijkstraView, CView)
	//{{AFX_MSG_MAP(CDijkstraView)
	ON_COMMAND(ID_DIJKSTRAL, OnDijkstral)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDijkstraView construction/destruction

CDijkstraView::CDijkstraView()
{
	// TODO: add construction code here

}

CDijkstraView::~CDijkstraView()
{
}

BOOL CDijkstraView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CDijkstraView drawing

void CDijkstraView::OnDraw(CDC* pDC)
{
	CDijkstraDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CDijkstraView printing

BOOL CDijkstraView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CDijkstraView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CDijkstraView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CDijkstraView diagnostics

#ifdef _DEBUG
void CDijkstraView::AssertValid() const
{
	CView::AssertValid();
}

void CDijkstraView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CDijkstraDoc* CDijkstraView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDijkstraDoc)));
	return (CDijkstraDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CDijkstraView message handlers



///////////////////////////////////////////////////////////////////////
//


void CDijkstraView::OnDijkstral() 
{
	
	int nEdges=SUM_EDGE;
	int S=1;				// 初始節點
	int T=10;				// 終結節點
	int path[SUM_NODE];		// 前置路徑節點
	int pathLen;

	EDGE edges[SUM_EDGE]={	//定義所有的邊,以及相關拓撲
		{1,1,5,12},		{2,5,6,5},		{3,6,7,9},		{4,7,8,7},
		{5,8,10,14},	{6,1,2,11},		{7,2,3,10},		{8,2,4,8},
		{9,5,9,30},		{10,3,8,17},	{11,5,3,19},	{12,7,9,16},
		{13,3,6,10},	{14,3,7,15},	{15,9,10,6}
	};

	

	//輸出結果:1
	FILE *fp;
	fp=fopen("result.txt","w");

	char cc[36];
	CString strpath;
	CClientDC dc(this);

	for(int i=1;i<SUM_NODE;i++)
		for(int j=i+1;j<=SUM_NODE;j++){
		S=i; T=j;
		pathLen=Dijkstral(edges,nEdges,S,T,path);
	
		//找到終端T的最短路徑	
		strpath="";
		::sprintf(cc,"%-5d",S);	
		strpath="起點:";strpath+=cc;
		::sprintf(cc,"%-5d",T);
		strpath+="  終點:";strpath+=cc;
		::sprintf(cc,"%-5d",pathLen);	
		strpath+="  長度:";strpath+=cc;
		dc.TextOut(100,100,strpath);
		fprintf(fp,"%s  ",strpath);

		strpath="路徑:";
		for(int k=0;k<SUM_NODE;k++){
			::sprintf(cc,"%d",path[k]);
			strpath+=cc;strpath+="  ";			
			if(path[k]==T){
				dc.TextOut(100,130,strpath);
				fprintf(fp,"%s\n",strpath);
				break;
			}
			if(pathLen==0||pathLen>=MAX_VALUE){				
				fprintf(fp,"\n");
				break;
			}
		}

	}

	fclose(fp);
}

int CDijkstraView::Dijkstral(Edge *pEdges, int nEdges, int S, int T,int *pPath)
{
	int NodeFlag[SUM_NODE];		// Node[i] 0未標記 1臨時標記 2永久標記
	int U[SUM_NODE];			// U[i]表示與節點Node[i]到起始點最短距離預測值
	int PreNode[SUM_NODE];		// PreNode[i]為當前取得U[i]值的前搜節點號
	int currentNode,u,minUNode;	// 當前處理的節點 最小的U[i],即u
	int tempNode,forEver;

	int i,j;	
	
	if(S==T){
		return (0);	
	}

	for(i=0;i<SUM_NODE;i++){
		NodeFlag[i]=0;	//置全部為標記
		U[i]=MAX_VALUE;	//初始化各個節點的最小路徑
		PreNode[i]=0;	//初始化各個節點的前索節點 可以不初始化
		pPath[i]=0;
	}

	//第一步:初始化起始點
	NodeFlag[S-1]=2;  
	U[S-1]=0;
	currentNode=S;    
	
	for(i=0;i<SUM_NODE;i++){
	// 第二步:遍歷所有未標記節點,置臨時節點
	// 從未標記節點中選擇與當前點相關的節點(當前節點就是和u對應的節點)
	// 一次循環只能標記一個永久節點,所以要循環SUM_NODE次,除非找到路徑break
		u=MAX_VALUE;
		for(j=0;j<SUM_EDGE;j++){
			tempNode=-1;
			if(pEdges[j].headNodeId	== currentNode)tempNode=pEdges[j].endNodId;
			if(pEdges[j].endNodId	== currentNode)tempNode=pEdges[j].headNodeId;
			// 和當前點相關的未標記點			
			if(tempNode!=-1&&NodeFlag[tempNode-1]==0){
				NodeFlag[tempNode-1]=1;	
			}		
	//第三步:臨時標記節中尋找最小U值
			if(NodeFlag[pEdges[j].headNodeId-1]==1&&
				NodeFlag[pEdges[j].endNodId-1]==2){				
				tempNode=pEdges[j].headNodeId;
				forEver=pEdges[j].endNodId;
			}else if(NodeFlag[pEdges[j].headNodeId-1]==2&&
				NodeFlag[pEdges[j].endNodId-1]==1){
				tempNode=pEdges[j].endNodId;
				forEver=pEdges[j].headNodeId;
			}else{	continue;  }			
			// 為臨時節點設置U值			
			if(U[tempNode-1]>U[forEver-1]+pEdges[j].wight){
				U[tempNode-1]=U[forEver-1]+pEdges[j].wight;	
				PreNode[tempNode-1]=forEver;
			}
			// 記錄最小U值
			if(u>U[tempNode-1]){
				u=U[tempNode-1];	// 記錄較小值
				minUNode=tempNode;	// 較小值對應的節點 循環完了之后minU就是最小值了											
			}	
		}
		//所有的節點都過了一遍,完成了臨時節點標記,記錄了最小的U以及對應的節點
		//
		currentNode=minUNode;

		if(u>=MAX_VALUE){// 沒有最短路徑
			return (MAX_VALUE);			
		}
		if(currentNode==T){ // 找到路徑,整理
			j=SUM_NODE;	tempNode=T;
			do{			
				pPath[--j]=PreNode[tempNode-1];
				tempNode=PreNode[tempNode-1];
			}while(tempNode!=S&&j>=0);
			for(int k=0;j<SUM_NODE;j++,k++){
				pPath[k]=pPath[j];
			}
			pPath[k]=T;
			return (u);	
		}
	// 第四步:S=S+{currentNode}  永久標記一個點minNode
		NodeFlag[currentNode-1]=2;			
	}
	return (u);	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品18久久久久久vr| 国产精品自产自拍| 亚洲一区在线看| 国产日产亚洲精品系列| 精品国产1区2区3区| 精品国产第一区二区三区观看体验 | 精品日韩在线观看| 日韩亚洲国产中文字幕欧美| 日韩精品在线一区| 久久久精品免费网站| 欧美激情自拍偷拍| 亚洲美女淫视频| 午夜精品视频一区| 蜜桃视频一区二区三区| 国产真实乱偷精品视频免| 国产成人av电影| 91视频国产观看| 欧美浪妇xxxx高跟鞋交| 日韩一二三四区| 国产日本欧美一区二区| 国产精品久久久久久久久久免费看| 中文字幕人成不卡一区| 亚洲福利视频一区二区| 久久9热精品视频| 波多野结衣欧美| 欧美三级蜜桃2在线观看| 日韩一区和二区| 欧美国产精品一区二区三区| 亚洲国产精品久久久久婷婷884| 日本不卡1234视频| jiyouzz国产精品久久| 宅男在线国产精品| 国产精品亲子伦对白| 亚洲一区二区精品久久av| 蜜臀av一区二区| 色琪琪一区二区三区亚洲区| 欧美不卡一二三| 亚洲在线观看免费视频| 国产精品888| 欧美年轻男男videosbes| 国产精品护士白丝一区av| 三级欧美韩日大片在线看| 粉嫩久久99精品久久久久久夜| 欧美精品丝袜中出| 日韩理论在线观看| 国产伦精品一区二区三区视频青涩 | 91精品黄色片免费大全| 国产精品青草久久| 久久机这里只有精品| 在线观看亚洲精品视频| 2024国产精品视频| 日韩不卡一区二区三区| caoporn国产精品| 91麻豆精品国产91久久久久久久久 | 国产精品午夜电影| 成人免费的视频| 樱桃视频在线观看一区| 欧美高清视频在线高清观看mv色露露十八| 午夜精品久久久久久久久| 欧美变态tickle挠乳网站| 高清成人在线观看| 亚洲国产成人av网| 久久久精品免费免费| 色8久久精品久久久久久蜜| 麻豆精品新av中文字幕| 中文字幕第一页久久| 色94色欧美sute亚洲13| 蜜桃视频在线观看一区| 国产精品青草久久| 制服丝袜中文字幕一区| 国产成人在线看| 性做久久久久久| 中文字幕一区二区三区在线观看 | jlzzjlzz欧美大全| 日韩影院精彩在线| 国产精品女上位| 欧美一级日韩不卡播放免费| 国产成人综合自拍| 亚洲bdsm女犯bdsm网站| 一区二区三区高清| 久久亚洲私人国产精品va媚药| 色老综合老女人久久久| 国产精品综合视频| 亚洲高清免费观看| 国产欧美日韩在线视频| 欧美一区二区三区在线观看| 91蝌蚪porny| 国产精品一区二区三区99| 人人精品人人爱| 一区二区三国产精华液| 国产精品电影一区二区| 久久精品一区二区三区四区| 678五月天丁香亚洲综合网| 色综合激情久久| 成人av网站免费观看| 久久精品99国产精品日本| 亚洲国产日日夜夜| 亚洲欧美日韩国产综合| 1024亚洲合集| 中文字幕在线播放不卡一区| 国产午夜三级一区二区三| 精品88久久久久88久久久| 欧美卡1卡2卡| 欧美日韩国产a| 欧美三级电影网| 欧美亚洲国产一卡| 欧美亚日韩国产aⅴ精品中极品| 99久久国产综合精品色伊| 不卡电影一区二区三区| 丁香婷婷综合色啪| 成人白浆超碰人人人人| 国产91精品露脸国语对白| 91免费视频网址| www.在线欧美| 色婷婷久久久亚洲一区二区三区| 成人在线综合网站| 成人黄色国产精品网站大全在线免费观看| 国产揄拍国内精品对白| 国产精一区二区三区| 国产成人av一区二区三区在线观看| 国产剧情一区在线| 成人精品鲁一区一区二区| aaa亚洲精品一二三区| 99九九99九九九视频精品| 91香蕉国产在线观看软件| 在线看不卡av| 欧美高清视频在线高清观看mv色露露十八 | 91色porny在线视频| 色综合久久综合网欧美综合网| 色婷婷狠狠综合| 91精品国产乱码| 久久精品亚洲一区二区三区浴池 | 奇米一区二区三区| 精品亚洲免费视频| 国产精品1区2区| 91热门视频在线观看| 欧美性一级生活| 日韩精品一区二区三区视频 | 成人性生交大合| 色av一区二区| 日韩三级在线观看| 国产欧美日韩综合精品一区二区 | 欧美日韩精品久久久| 日韩美女一区二区三区| 亚洲欧美中日韩| 免费观看91视频大全| 不卡av免费在线观看| 777久久久精品| 中文一区一区三区高中清不卡| 亚洲资源在线观看| 国产一区二区三区黄视频 | 精品国产伦一区二区三区免费| 中文字幕第一页久久| 五月天中文字幕一区二区| 国产精品一品视频| 欧美精品久久99| 国产精品福利影院| 久久成人免费网| 在线日韩国产精品| 中文字幕av一区二区三区| 日韩精品免费专区| aa级大片欧美| 久久久久久久久久看片| 午夜精品一区二区三区电影天堂 | 国产91在线看| 91精品国产手机| 亚洲精品免费播放| 国产成人激情av| 精品免费国产一区二区三区四区| 亚洲欧美偷拍卡通变态| 激情成人午夜视频| 欧美一区二区三区系列电影| 亚洲另类在线一区| 国产 日韩 欧美大片| 精品国产亚洲一区二区三区在线观看| 亚洲一区电影777| 91捆绑美女网站| 中文字幕日韩一区| 成人黄色在线网站| 国产日韩欧美精品综合| 激情综合色播五月| 日韩免费在线观看| 日韩专区在线视频| 欧美日韩一级片在线观看| 一区二区三区中文字幕精品精品 | 日本精品视频一区二区三区| 亚洲国产精品av| 国产精品亚洲а∨天堂免在线| 日韩欧美美女一区二区三区| 亚洲成av人在线观看| 91行情网站电视在线观看高清版| 亚洲欧洲日韩综合一区二区| av中文字幕亚洲| 亚洲免费观看视频| 91亚洲精品久久久蜜桃网站| 亚洲视频 欧洲视频| 99re这里只有精品视频首页| 一区精品在线播放| 色综合久久久久| 一区二区三区精品久久久|