bipartite 를 C언어로 구현한 보고서입니다. 소스코드 및 설명이 들어있습니다.
- 최초 등록일
- 2011.06.27
- 최종 저작일
- 2011.05
- 13페이지/ 한컴오피스
- 가격 1,000원
소개글
자료구조 과목에서 C로 구현한
bipartite입니다. 이분그래프
보고서 및 코드가 있습니다.
그대로 돌리시면 됩니다.
직접구현하였기때문에 어디서따온코드 없습니다. 세세한 설명, 주석, 보고서 다있습니다.
박리다매를 목적으로 싸게올립니다.
목차
1. 알고리즘 구상
2. 소스코드설명
3. 코드 및 주석
4. 실행화면
본문내용
1. Implementation
전체적인 구상은
1. 우선 Node의 숫자를 받아 Edge수를 가능 범위 내에서 받고
2. Adjacency Matrix를 표현하는 이차원배열, Color를 나타내는 배열, BFS(너비 우선 탐색)을 위한 check(visited를 나타내는)배열과 QUEUE를 구성할 queue배열을 동적할당으로 설정하였습니다.(Node숫자에 따른 동적할당)
3. Adjacency matrix를 랜덤하게 생성하여 그 matrix를 통해 그래프를 표현합니다.
4. Matrix는 기본 0으로 초기화 후 Edge수만큼 for문을 돌려 랜덤하게 Edge를 선택하여 1로 바꾸어 주는 방식을 썼습니다.(대칭되게 반대방향도 1로 같이 바꿉니다.)
5. 각 Node의 구별은 배열의 번호로 했으며, Color또한 0(Red)와 1(White)를 배열에 랜덤하게 저장하여 구성했습니다.
6. 기본 Graph는 이렇게 생성되었으며 Connect한지를 checkconnectbfs() 함수를 통해 구하여 Connect하지 않았을 시 do while문을 통해 다시 생성하게끔 만들었습니다.
7. checkconnectbfs()함수는 BFS(너비 우선 탐색)방법을 따랐으며, 항상 초기선택 Node는 0번 Node로 설정하였습니다.
8. 이렇게 해서 생성된 Connect한 Graph를 checkbiparbfs() 함수를 통해 bipartite인지를 확인 후 맞으면 bipartite인 그래프라고 출력을 그렇지않을 경우 아니라고 출력을 하게 하였습니다.
9. checkbiparbfs()함수 역시 BFS방법을 따랐으며, 7번에서 Color값 조건을 추가해서 구성하였습니다. 역시 초기선택은 0번 Node로 하였습니다.
1)필요한 배열 선언 및 동적할당
참고 자료
없음