배열기반의 리스트 구현
Programming/Data Structure 2012. 12. 25. 00:27 |헤더파일의 정의
어떠한 자료구조이건 간에 '자료구조의 구현' 과 '구현된 자료구조의 활용' 은 완전히 구분되도록 ADT를 정의해야 함을 기억해야 한다.
배열을 이용하는 방법.
리스트에 다양한 종류의 데이터를 저장할 수 있게 하기 위한 typedef 선언이 존재한다.
typedef int LData; // 리스트에 int형 데이터의 저장을 위한 선언
typedef ArrayList List; // List는 배열 기반 리스트이다.
이렇듯 ArrayList에 List라는 이름을 별도로 부여한 것이 당장에는 큰 의미가 없어 보인다. 하지만 ArrayList라는 이름에도 typedef 선언을 해 놓으면, 다음과 같이 List에 다른 이름을 부여하는 것만으로도 사용하는 리스트의 종류를 바꿀 수 있다.
typedef LinkedList List; // List는 연결 기반 리스트이다.
그래서 main 함수에서도 ArrayList가 아닌 List라는 이름을 이용하여 예제를 작성한 것이다.
함수의 정의
curPosition 변수는 저장된 값을 통해서 LFirst 함수와 LNext 함수가 참조해야 할 배열의 위치를 알려주는 변수이다. 그래서 curPosition은 0이 아닌 -1로 초기화한 것이며, 여기에는 아직 데이터의 차모가 진행되지 않았다는 의미가 담겨있다.
"어떠한 라이브러리를 사용하건 저장된 데이터의 조회를 위한, LFirst 함수의 호출과 같은 별도의 과정은 거치기 마련이다."
'Programming > Data Structure' 카테고리의 다른 글
배열 기반 리스트의 장점과 단점 (0) | 2012.12.25 |
---|---|
구조체 주소값을 저장 (0) | 2012.12.25 |
배열을 이용한 리스트의 구현 (0) | 2012.12.24 |
추상 자료형: Abstract Data Type (0) | 2012.12.24 |
하노이 타워 : The Tower of Hanoi (0) | 2012.12.24 |