검색어 입력폼

알고리즘 외판원 문제로 경로 찾는 레포트입니다.

저작시기 2006.11 |등록일 2008.04.02 한글파일한글 (hwp) | 31페이지 | 가격 2,000원

소개글

알고리즘의 외판원 수업을 마치고 나온 프로젝트입니다.

목차

1. 설계
2. 알고리즘
3. Source
4. 출력

본문내용

1. 설계
main()
master_insert()
node_data_insert()
node_insert()
node_make()
2. 알고리즘
알고리즘 : 파일의 노드의 개수 확인
내 용 : 매개변수로 파일의 이름을 입력받아 파일의 내용을 문자로 읽어 들여 하나하나 count를 올려가면서 총 개수를 파악하고 제수와 몫이 같고 나머지가 0으로 갈 때 몫을 return해 준다.이때 몫의 값은 노드의 개수가 된다.
입 력 : 입력 받을 파일 이름.
출 력 : 노드의 수 리턴
int line_cnt(char file_name[])
{
char a;
int cnt=0, i, line=0, d=0, m=0;
FILE *fp;
if((fp = fopen(file_name,"r")) == NULL)
while(!feof(fp))
{
fscanf(fp, "%s", &a);
cnt++;
}
cnt = cnt -1;
for(i=1 ; i {
d = cnt / i;
m = cnt % i;
if(m==0 && d==i)
break;
}
line = i;
PRINT node number;
file close;
return line;
}
알고리즘 : 초기 값을 저장할 공간을 할당해 주고 초기화 해주며, 전체 배열의 구조체를 초기화 해주는 알고리즘
내 용 : 구조체의 행의 최소항, 열의 최소항, 노드의 경로, 최소비용, 최소항의 합, 선택 사항 남은 노드의 수, 이전 노드의 포인터등을 초기화 하고, 전체 노드의 cost비용을 초기화 해준다.
입 력 : master구조체 하나와 총 노드의 수
출 력 : 초기화 된 master구조체, 전체 구조체의 cost 초기화
void master_make(DATA master[], int *line)
{
int i, j;
for(i=0 ; i<*line ; i++)
{
master->row[i] = 0;
master->col[i] = 0;
master->route[i] = NULL;
for(j=0 ; j<*line ; j++)
{
master->arr[i][j] = 0;
}
}
master->cost = 0;
master->sum = 0;
master->select = 1;
master->count = *line;
master->front = NULL;
for(i=0 ; i {
for(j=0 ; j {
node[i][j].cost = 999;
}
}
}
알고리즘 : master 구조체에 파일에서 입력 받은 노드 정보를 입력하는 알고리즘
내 용 : 파일을 열어 파일이 끝이 아닐 때 까지 파일의 내용을 구조체의 a[i][j]에 넣어 데이터를 입력 받습니다.
다운로드 맨위로