라우터 망에서 각 라우터의 경로설정표를 구하는 프로그램을 작성하시오.
- 최초 등록일
- 2007.04.20
- 최종 저작일
- 2007.01
- 22페이지/ MS 워드
- 가격 1,000원
소개글
n개의 라우터들과 이들을 연결하는 망이 있다. 그리고 두 라우터를 연결하는 각 통신링크에 대하여 단위 패킷을 보내는데 걸리는 시간이 주어진다. 이 라우터 망에서 각 라우터의 경로설정표를 구하는 프로그램을 작성하시오.
목차
□ 문제정의
□ 문제 해결방법
□ 수행결과
□ 결 론
□ 소스 코드
본문내용
□ 문제정의
n개의 라우터들과 이들을 연결하는 망이 있다. 그리고 두 라우터를 연결하는 각 통신링크에 대하여 단위 패킷을 보내는데 걸리는 시간이 주어진다. 이 라우터 망에서 각 라우터의 경로설정표를 구하는 프로그램을 작성하시오.
□ 문제 해결방법
1. 파일로부터 정점의 개수와 정점들 사이의 에지의 가중치를 입력을 받는다.
정점들은 번호대신 문자열로 들어오기 때문에 문자열을 이에 해당하는 인덱스값으로 바꾸어주어야 한다. 또한 마지막 우리가 원하는 값을 출력 시 해당하는 인덱스를 이에 해당하는 문자열로 바꾸어야 하기 때문에 문자열을 저장할 수 있는 하나의 문자열 배열을 하나 생성한다.
만약에 그 문자열 배열에 지금 들어온 라우터 이름이 존재 하지 않다면 그 배열에 순차적 뒤에 넣고, 존재 한다면 그냥 넣어간다. 그래서 각 문자열마다 고유의 인덱스값을 가지게 된다.
들어온 라우터 이름을 고유의 인덱스 값으로 변경 후 그 인덱스 값을 이용하여 각 해당하는 링크드 리스트에 연결된 정점들은 추가(가중치도 포함)한다.
무방향 그래프이므로 파일로 들어온 두 정점 모두 링크드 리스트로 연결한다.
예를 들어 A B 2 가 들어왔다고 가정하고 또한 A의 해당하는 번호 0이고, B의 해당하는 번호 1이라고 가정해보면 1번의 링크드 리스트에 2번의 정점을 연결하고, 2번 역시 1번의 정점을 연결한다. 이로서 정점들과 에지의 가중치를 링크드 리스트로 구현할 수 있다.
그리고 이제 출력을 해야하는 라우터 이름을 출력을 받는데 이것 역시 문자열을 고유의 인덱스 번호로 바꾸어 새로운 배열에 저장 후 각각의 고유의 번호를 이용하여 최단의 경로를 찾는 함수에 인자로 보내준다.
참고 자료
없음