목록연결리스트 (2)
happy coding
연결 자료구조(Linked Data Structure) 연결 자료구조란, 자료의 논리적인 순서와 물리적인 순서가 일치하지 않는 자료구조로, 각 원소에 저장되어 있는 다음 원소의 주소에 의해 순가 연결되기 때문에 물리적인 순서를 맞추기 위한 오버헤드가 발생하지 않는다. 또한, 여러 개의 작은 공간을 연결하여 하나의 전체 자료구조를 표현하기 때문에 크기 변경이 유연하고 더 효율적으로 메모리를 사용할 수 있다. 여기서 연결리스트란, 리스트를 연결 자료구조로 표현한 구조인데, 연결하는 방식에 따라 단순연결 리스트와 원형 -, 이중 - , 이중 원형 - 이 존재한다. 순차 자료구조의 문제점은 1. 삽입 연산이나 삭제 연산 후에 연속적인 물리 주소를 유지하기 위해 원소들을 이동시키는 추가적인 작업과 시간이 소요된다..
linked list 를 어떻게 c언어로 구현하는지 배열(array)은 구현이 간단하고 빠르지만 크기가 고정되고 중간에 삽입과 삭제가 어렵다. 연결리스트는 각각의 원소가 포인터를 사용하여 다음 번째 원소의 위치를 가리킨다. 데이터를 저장할 공간이 필요할 때마다 동적으로 공간을 만들어서 쉽게 추가할 수 있지만,구현이 어렵고 오류가 나기 쉽고 포인터 연산을 많이 하기 때문에 느리다. 하지만 왜 쓰냐면, 배열의 단점을 완벽하게 커버하기 때문이다. 연결 리스트의 구조는 노드 = 데이터 필드 + 링크 필드 로 이루어져 있다. 여기서 첫 번째 노드를 가리키는 포인터를 헤드 포인터라고 한다. 자기 참조 구조체(self-referential structure)란 특별한 구조체로서 구성 멤버 중에 같은 타입의 구조체를 ..