[프로그래밍어론]전화번호부-리스트-20090417
- 최초 등록일
- 2013.12.05
- 최종 저작일
- 2009.05
- 8페이지/ 한컴오피스
- 가격 2,000원
소개글
프로그래밍 어론, A+ 리포트
목차
1. 문제정의 - 전화번호부 만들기
2. 문제해결
3. 결론
4. 소스
5. 결과창
본문내용
0. 문제정의 - 전화번호부 만들기
※ 전화번호부 만들기
- linked list를 사용해서 전화번호부를 만든다.
- 동적 할당을 사용해야 한다.
- 입력, 추가, 삭제, 수정, 복사하여 새로운 전화번호부 만들기, 두 개의 전화번호부
합치기의 기능이 수행되어야 한다.
- 기본적인 기능은 주어진다. 함수의 내부를 구현해야 한다.
- 수정과 삭제의 경우 이름으로 못 찾으면 false를 반환한다.
- find 함수의 경우 못 찾으면 -1을 반환한다.
1. 문제해결
※ 전화번호부 만들기
※ copy constructor
● 같은 클래스의 객체에 대한 상수 참조를 인자로 취하는 생성자로 한 값에 대한 사본을 만들기 위해서 사용한다. 어떤 객체의 처음부터 끝까지를 똑같이 같은 객체를 만들 때 사용한다.
● 이 프로그램에서는 대입연산자(“=”) 오버로딩을 통해서 복사 생성자를 구현하도록 한다.
● 복사 생성자는 전화번호부를 복사하는 과정에서 사용된다. 각각의 처음부터 바꾸어서 넣으려면 귀찮은 작업을 해야 하므로 원래 있던 데이터를 삭제시킨 후에 새로 인자로 받은 데이터를 반복문을 통해서 end 값이 아닐 때까지 새로 넣는다.
※ list에서 merge
● merge의 사전적인 의미는 합병하다, 합체시키다라는 의미이다. 프로그램 상에서는 두 개 이상의 데이터를 합치는 작업을 의미한다. list에서 merge는 merge sort에서처럼 어려운 알고리즘이 아니다. 물론 그렇게 양쪽에서 하나씩 가지고 와서 할 수도 있지만 정렬되어있지 않은 알고리즘이기 때문에 그러한 알고리즘이 필요가 없다. 단순히 하나의 데이터 내용을 먼저 copy한 다음 나머지 한 개의 데이터 내용을 뒤에 계속 붙이면 된다. 이 과정에서 복사 생성자가 사용된다.
● linked list로 구현 시에 처음에 복사하는 데이터는 복사 생성자를 이용해서 복사하고, 그리고 다른 하나는 복사해서 값을 넣는 것이 아니라 원본 데이터에 주소로 연결 될 수 있다는 점을 기억하고 주의해야한다.
참고 자료
없음