검색어 입력폼

[알고리즘] C로 구현한 외판원 경로구하기 [알고리즘]

등록일 2004.06.03 파일확장자압축파일 (zip) | 1페이지 | 가격 3,000원

소개글

정말 보기 힘든 자료 일거라고 생각합니다.
말그대로 외판원 경로 구하기 프로그램이구요.
C로 구현하였습니다.
경로는 파일로 읽어와서 데이터를 처리하였구요..
많은 도움이 되시길 바랍니다.

목차

총 20파일

본문내용

//=================================================//
// 파일명 : Sale_Report.cpp(소스), sales.txt(배열) //
//=================================================//


#include "stdafx.h"
#include <stdlib.h>
#include <math.h>
#include <string>

#define N 10 //정점의 수..
#define M 1024 //부분집합의 수
#define VS 1 //시작경로
#define VSP (int)pow(2,VS-1)

int W[N][N]; //인접행렬 입력값
int D[N][M]; //최단경로 저장배열
int P[N][M]; //P[Vi][A] = D[Vi][A]의 최단경로로 갈때 처음가는 원소
int set[M]; //각 부분집합이며, 원소갯수를 저장한다.


void setCount();
int travel();
void path(int,int);
void mininum(int,int);


int main(int argc, char* argv[])
{
static char *inFile = "sales.txt";//읽을 화일명
char buffer[1024];
char bb[1024];

FILE *fp;
fp = fopen(inFile, "r");
if(!fp){
printf("읽을 파일이 없습니다.\n");
fclose(fp);
return-1;
}
else{
for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
fread( buffer, sizeof( char ), 4, fp); //처음 4자리 불러오기
fread( bb, sizeof( char ), 1, fp); //"," 불러오기
W[i][j] = atoi(buffer); //정수로 변환하여 배열에 넣기
}fread( bb, sizeof( char ), 1, fp); //"\n" 불러오기
}
}
fclose(fp); //파일 닫기

if(travel()>=1000)
printf("불가능한 경로입니다.");
else
{
printf("파일에서 불러온 배열은 다음과 같습니다.\n\n");
for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
printf("%d ",W[i][j]); //배열값 출력
}printf("\n");
}
printf("\n-------------------------------------------------\n");
printf("외판원 경로의 최소비용은 %d 입니다.\n\n",travel()); //최소비용 출력
printf("외판원의 최소비용 경로는 -----♥\n"); //경로출력
path(VS-1,M-1-VSP);
}
return 0;
}

int travel() //외판원 경로구하기
{
다운로드 맨위로