[프로그램] 자료구조 : 코럴링 (Coral ring) 구현. C++
- 최초 등록일
- 2003.05.18
- 최종 저작일
- 2003.05
- 14페이지/ 한컴오피스
- 가격 1,000원
소개글
C++ 로 구현한 것으로..
소스 코드 및 주석있습니다.
주석은 코드 한 줄마다. 거의 넣었습니다.!
아무토로.. 도움이 되시길!
목차
1. 문제설명
2. 알고리즘 설명 및 주요함수
3. 소스 코드 및 주석
4. 결과
5. 느낀점
본문내용
1. 문제 내용 및 설명
리스트 구조를 이용해서, 3개의 학과를 만든다. (컴퓨터, 전자, 통신)
각 학과 내에 학생을 리스트로 만든다. 학생의 리스트는 동적으로 할당한다.
학과 및 학생들의 구조는 리스트로 구현하고, 학생의 경우에는 코럴링을 이용한다.
프로그램에서 가능한 기능들은 학생 데이터의 입력, 전체 학생 출력, 학번으로 검색하 여, 해당 학생 출력, 학생 데이터 삭제의 기능을 구현해야 한다.
2. 알고리즘 설명
코럴링 (Coral ring)
체인에서 교대로 전위 레코드와 마스터 레코드를 가리킴
전위 레코드 : 1~2회 마스터 레코드 : 평균 1.5회
◈ 삽입 알고리즘
삽입을 선택하면, 데이터를 메모리 공간에 동적으로 할당한다. 그 공간에 각 학과, 학년, 이름, 학번을 입력한다. 학년은 1~4학년 밖에 없으므로, 그 이외의 값이 들어오면 에러처리를 하여 다시 입력 받고, 학과의 경우에는 3개의 학과만을 기준으로 했기 때문에 그 3학과의 이외의 값에 대한 입력을 에러처리하고, 학번의 경우에는 같은 학번은 존재할 수 없으므로, 데이터를 모두 검색하여(검색 알고리즘 참조), 같은 학번이 있으면 다시 입력 받게 한다.
데이터의 입력이 끝나면, 입력된 데이터의 학과와 학과 노드를 순환하여 같은 학과의 리스트에 입력을 하게 되는데, 각 학과의 제일 마지막으로 이동하여 마지막이 가르키는 헤드의 값을 새로 입력한 값이 가르키는 값으로 해주고, 마지막이었던 곳이 가르키는 값을 현재 입력된 값으로 바꾸어 마지막에 연결시켜준다. 코럴링을 위한 또 다른 노드는 현재의 노드의 순서를 생각하여 짝수일 경우 전전 데이터를, 홀수일 경우 헤드를 가르키는 데이터로 해준다.
참고 자료
없음