C++: Thuật toán DIJKSTRA tìm đường đi ngắn nhất

megaboy_dn

Moderator
Mới biết được code tìm đường nên post lên chia sẻ, hy vọng nó có ích trong một số trường hợp:

Gồm 1 file source và một file input (g9.cpp)

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#define MAXINT 0x7FFF
int a[20][20],w[20][20],n,m;
int dd[20];
int min(int a, int b)
{
if(a<b) return a; else return b;
}
void docdlts()
{
FILE *f;
int i,j;
f=fopen("g9.cpp","rt");
if(f==NULL) cout<<"ko mo duoc file!";
else
{
int d,c,k;
fscanf(f,"%d%d",&n,&m);
for(i=1; i<=n; i++)
for(j=1; j<=n; j++) w[j]=MAXINT;
for(i=1; i<=m; i++)
{
fscanf(f,"%d%d%d", &d,&c,&k);
w[d][c]=w[c][d]=k;
}
cout<<"\n da doc xong file du lieu!";
fclose(f);
getch();
}
}
void dijkstra(int a, int z)
{
int i,j,v,x;
int L[100],T[100], HT[100]; //L nhan cac dinh,
// T la tap cac dinh
// HT : mang luu duong di tu a-->z
//buoc 1: Khoi gan
for(x=1; x<=n; x++) L[x]=MAXINT;
L[a]=0;
for(x=1; x<=n; x++) {T[x]=1; HT[x]=x;} //{T la tap cac dinh cua do thi G}
int dung=0;
while(dung==0)
{
//buoc 2
v=1; while(T[v]==0 && v<=n) v++; // tim v dau tien thuoc T
// Tim v thuoc T sao cho L[v] la nho nhat
for(j=v+1; j<=n; j++) if(T[j]==1 && L[j]<L[v]) v=j;
if(L[v]==MAXINT) {cout<<"\n DO THI KO LIEN THONG"; getch(); exit(1);}
T[v]=0; // loai v ra khoi tap T
//buoc 3
if (T[z]==0)
{
dung=1;
cout<<"\n duong di ngan nhat tu "<<a<<" den "<<z<<" la:"<<L[z];
// dua vao HT de in duong di
}
else
{
int r=L[x];
// xet cac dinh x thuoc T va ke v
for(x=1; x<=n; x++) if (T[x]==1 && w[x][v]!=MAXINT)
L[x]=min(L[x], L[v]+w[v][x]);
if (r!=L[x]) HT[x]=v; // cap nhat lai duong di den x

}
}
}
int main()
{
//clrscr();
docdlts();
for(int i=1; i<=n; i++)
{
cout<<"\n";

for(int j=1; j<=n; j++)
if(w[j]==MAXINT) {
//textcolor(2);
printf("%6c","c");
//textcolor(15);
}
else printf("%6d",w[j]);
}
dijkstra(1,9);
getch();
return 0;

}


file input:

9 16
1 2 2
1 5 4
1 6 14
2 3 1
2 6 12
3 4 10
3 9 20
4 6 7
4 9 6
5 6 4
5 7 2
6 7 1
6 9 3
7 8 4
7 9 8
8 9 5
 

minhphuc

New member
Cái này là giải thuật tìm đường đi ngắn nhất!

Học môn này thiệt là lý thú, người giảng viên cũng thật là tuyệt vời!

Đề tài cuối khóa là tìm đường đi vận dụng cho xe cứu thương.
 

rcp

Administrator
Cái này là giải thuật tìm đường đi ngắn nhất!

Học môn này thiệt là lý thú, người giảng viên cũng thật là tuyệt vời!

Đề tài cuối khóa là tìm đường đi vận dụng cho xe cứu thương.


mình-rcp cũng đã "bị" phải học môn nì. Lúc đầu lớp học có khoảng ba mươi mấy sinh viên. Sau đợt thi cử giữa khóa còn hơn phân nửa số sv.

hihi.. đến kỳ thi cuối khóa chỉ còn mươi con nhạn là đà..

Chắc là tại.. do giáo sư giảng, gây mê làm sv ngủ gà ngủ gật..|-)

hihi.. họ đổ mừ[-(

--- rcp ---
 

Facebook Comment

Similar threads
Thread starter Tiêu đề Diễn đàn Trả lời Ngày
B Sự thay đổi thuật toán tìm kiếm trong Google CLB TIN HỌC 0
N Các chỉ báo kỹ thuật cơ bản trong forex và chứng khoán trên sàn giao dịch ngoại hối forex GIAO LƯU - BÀN LUẬN 0
L [Khác] Phẫu thuật nâng ngực là gì và những điều cần biết QUẢNG CÁO - RAO VẶT 0
L [Khác] Phẫu thuật nâng ngực có nguy hiểm không? QUẢNG CÁO - RAO VẶT 0
L [Khác] Phẫu thuật nâng ngực ở đâu đẹp và an toàn? QUẢNG CÁO - RAO VẶT 0
L [Khác] Tìm hiểu phẫu thuật nâng ngực có đau không? QUẢNG CÁO - RAO VẶT 0
P [Sản Phẩm] Cắt mí bao lâu hết sưng và đẹp tự nhiên không phẫu thuật Website - Blog 0
U Làm đài phun nước nghệ thuật đẹp chất lượng Tin dịch vụ 1
C [Sức khỏe] Đà Nẵng: Bắt đầu phẫu thuật tái tạo bộ phận sinh dục cho trẻ em Tin tức 24h 0
C [Đà Nẵng] 30-6, hoàn thiện hạ tầng kỹ thuật phía Đông cầu Rồng Tin tức 24h 0
zoromask Hướng tới Worldcup 2014: Những kỹ thuật lừa bóng siêu đỉnh trong bóng đá Tin Thể thao 24h 0
S [Việc Làm] Tuyển NV tường thuật bóng đá tại Đà Nẵng và các tỉnh lân cận Giáo dục - Việc làm 2
zoromask Hướng tới Worldcup 2014: Những màn trình diễn kỹ thuật đặc sắc trong bóng đá Tin Thể thao 24h 0
BNN [Trường học] Trường Đại học Kỹ thuật Y - Dược tại Đà Nẵng Địa chỉ Đà Nẵng 0
zoromask Hướng tới Worldcup 2014: Những bàn thắng đẹp và kỹ thuật của Goran Pandev Tin Thể thao 24h 0
lehieu91 Hướng tới Worldcup 2014: Kỹ thuật và những bàn thắng đẹp mắt của Robin Van Persi Tin Thể thao 24h 0
zoromask Hướng tới Worldcup 2014: Kỹ thuật và những bàn thắng đẹp mắt của van Persie Tin Thể thao 24h 0
C [Đà Nẵng] Bệnh viện Đà Nẵng nhận máy chụp mạch kỹ thuật số xóa nền 26 tỷ đồng Tin tức 24h 0
C [Đà Nẵng] "Kỹ thuật không cho phép làm đầu rồng ngẩng cao" Tin tức 24h 0
C [Xã hội] Bệnh Viện ung thư DN Phẫu thuật thành công khối u nặng 1,2kg Tin tức 24h 0
minhdan0001 Xăm 3D nghệ thuật TATTOO MR.BO Du lịch - Mua sắm 32
C [Đà Nẵng] Thông số kỹ thuật cầu rồng Tin tức 24h 0
BNN [Marketing] Nghệ thuật typography trong thiết kế quảng cáo Quảng bá thương hiệu 0
BNN [Thương hiệu] Nghệ thuật thiết kế logo ẩn các con số Thiết kế Thương hiệu 0
BNN [Thương hiệu] Logo thư pháp - Nghệ thuật về viết chữ Thiết kế Thương hiệu 0
BNN [Thương hiệu] Nghệ thuật thiết kế logo chữ số Thiết kế Thương hiệu 1
BNN [Thương hiệu] Logo ẩn với thủ thuật thiết kế âm bản Thiết kế Thương hiệu 0
BNN [Thương hiệu] Ambigram logo: Đỉnh cao của nghệ thuật logo chữ Thiết kế Thương hiệu 0
BNN [Thương hiệu] Danh thiếp và nghệ thuật sử dụng font chữ Thiết kế Thương hiệu 0
BNN [Thương hiệu] “Quán triệt” chiến thuật đa thương hiệu Chiến lược thương hiệu 0
BNN [Thương hiệu] Chiến thuật sử dụng khi tái tung thương hiệu Chiến lược thương hiệu 0
BNN [Thương hiệu] 33 Bí quyết và Chiến thuật đặt tên thương hiệu Xây dựng thương hiệu 0
BNN [Sổ tay] Thuật ngữ THƯƠNG HIỆU - Chuyên đề Xây dựng thương hiệu 28
Viết Sang Thủ thuật tắt máy tính từ menu chuột phải trên Windows 8 Thủ thuật - Mẹo vặt 0
Viết Sang Thủ thuật lưu trữ nhanh hình ảnh, âm thanh và video về Google Drive Thủ thuật - Mẹo vặt 0
rcp [Ảnh nghệ thuật] Những bức ảnh pháo hoa chụp bằng kỹ thuật phơi sáng dài tuyệt đẹp Ảnh của n/t nhiếp ảnh 2
T Tài liệu cấu trúc dữ liệu giải thuật căn bản Kho download 0
T Thủ Thuật Tải Nhạc Chuông Miễn Phí Thủ thuật - Mẹo vặt 1
C Cần tuyển kỹ thuật phần cứng điện thoại Máy tính - Điện thoại 27
F [Nhà Đất] Kỹ thuật hay nhất khi chơi tiến lên Website - Blog 0
hanlong [Thể thao] Giao lưu võ thuật cổ truyền Việt Nam với Cộng hòa liên bang Đức Tin tức 24h 0
S KỸ THUẬT TẠO HÌNH TRONG NHIẾP ẢNHTrong các ngành nghệ thuật tạo hình như hội hoạ Kỹ năng xử lý ảnh 2
T [Kiến thức] Hướng dẫn phân tích kỹ thuật trong chứng khoán Chứng khoán Đà Nẵng 1
T [Tin tức] Video Marketing - Thủ thuật quảng bá thương hiệu trên Youtube Kiến thức kinh doanh 0
S 10 Kỹ Thuật chụp ảnh với nước Kỹ năng xử lý ảnh 0
rcp Thứ nghệ thuật ghê răng của chụp món ăn nhà hàng Kinh nghiệm săn ảnh 0
M Chiêm ngưỡng kiệt tác bonsai đầy nghệ thuật của Takanori Aiba Hình ảnh đẹp 3
C Phẫu thuật nhân đạo miễn phí cho trẻ nhỏ Chương trình - sự kiện 2
V Thủ thuật sao lưu và phục hồi Registry nhanh chóng. Thủ thuật - Mẹo vặt 0
binho243 Thuật xử thế của người xưa - lòng tự ái của con người Kinh nghiệm - Chia sẻ 3

Similar threads

Top