3장 연결리스트1 – (2) 요약

교재: 윤성우의 열혈 자료구조
ray ban sunglasses online
리스트(List)
nike air jordan 1
What?
단어의 뜻 그대로 데이터를 나란히 저장하는 자료구조이다. 나란히 줄을 세워 데이터를 저장하되 데이터의 중복은 고려하지 않는 자료구조이다.
ray ban sunglasses cheap
Why?
데이터를 저장함에 있어서 가장 일반적인 방식 아니겠는가? 일상생활에서도 우리가 책꽂이에 책을 꽂을 때도 나란히 순서대로 책을 꽂는 것을 생각해 보면 자연스러운 데이터 저장 방식 중 하나가 리스트라는 것을 금방 알 수 있다.완벽하게 대응하는 것은 아니지만 실제 컴퓨터 안에 저장장치 중 하나인 메모리 구조 역시 리스트라고 할 수 있다.
Spain Oakley sunglasses
How?
위에서 잠깐 언급한 것과 같이 메모리의 저장방식 역시 리스트와 유사하기 때문에 리스트를 구현하는 것은 어렵지 않다. 기본타입인 배열을 이용해서 구현하면 되기 때문이다. 이러한 구현방식을 순차리스트라고 한다. 또 다른 근 방법으로는 메모리의 동적할당을 이용한 방식으로 연결리스트가 있다. 물론 두 가지 방식의 장단이 있다. 추후에 연결리스트를 공부하면서 비교할 수 있게 될 것이다.

리스트의 ADT (교재 내용)
Operation:
Void ListInit(List *plist);
– 초기화할 리스트의 주소 값을 인자로 전달
– 리스트 생성 후 제일 먼저 호출되어야 하는 함수이다.

Void LInsert(List *plist, LData data);
– 리스트에 데이터를 저장한다. 매개변수 data에 전달된 값을 저장한다.

int LFirst(List *plist, LData *pdata);
– 첫 번째 데이터가 pdata가 가리키는 메모리에 저장된다.
– 데이터의 참조를 위한 초기화가 진행된다.
– 참조 성공 시 TRUE(1), 실패 시 FALSE(0) 반환

int LNext(List *plist, LData *pdata);
– 참조된 데이터의 다음 데이터가 pdata가 가리키는 메모리에 저장된다.
– 순차적인 참조를 위해서 반복 호출이 가능하다.
– 참조를 새로 시작하려면 먼저 LFirst 함수를 호출해야 한다.
– 참조 성공 시 TRUE(1), 실패 시 FALSE(0) 반환

LData LRemove(List *plist);
– LFirst 또는LNext 함수의 마지막 반환 데이터를 삭제한다.
– 삭제된 데이터는 반환된다.
– 마 지막 반환 데이터를 삭제하므로 연이은 반복 호출을 허용하지 않는다.

int LCount(List *plist);
– 리스트에 저장되어 있는 데이터의 수를 반환한다.