반응형

연결리스트 2

자료구조 – 이중 연결리스트[doubly linked list] C언어

이중 연결리스트는 단순 연결리스트 자료구조를 확장한 형태이다. 단순 연결리스트를 정확히 이해했다면, 이중 연결리스트에 대한 구조 또한 쉽게 이해할 수 있다. 2014/03/20 - [프로그래밍/C언어] - 자료구조 - 연결리스트[linked list] C언어 왼편(단순연결리스트), 오른편(이중연결리스트)의 차이는 prev의 유무다. prev의 역할은 next와 비슷한데 next가 다음 노드(NODE)를 참조하는 것에 반해 prev는 이전 노드(NODE)를 참조한다. 이런 구조적인 차이로 인해 알고리즘도 약간의 변화가 생기게 된다. 단순 연결 리스트의 삽입, 삭제와 이중 연결 리스트의 삽입, 삭제에 대한 비교를 하면 쉽게 이해할 수 있다. 위 그림은 단순 연결리스트의 메모리의 구조를 모식적으로 나타낸 것이..

자료구조 - 연결리스트[linked list] C언어

연결리스트는 동적배열과 비슷하지만 동적배열에 비해 데이터를 유연하게 삽입, 삭제할 수가 있다. 동적배열의 경우엔 삽입을 하기위해선 배열의 크기를 체크하고 배열의 공간이 꽉 차있다면 realloc을 하였다. 그리고 삽입, 삭제할 지점 이후의 자료들은 메모리의 이동이 이루어지기 때문에, 삽입시 부자연스럽기도 하다. 동적배열과의 연결리스트의 차이점은 배열의 특성은 메모리공간에서 연속이라는 점이다. 그래서 첨자연산으로 빠른 속도가 보장되지만, 메모리가 연속이어야 하기 때문에, 삽입과 삭제가 번거롭다. 하지면 연결리스트는 메모리상에 연속이지 않아도 된다. 다음데이터에 대한 링크정보를 지니고 있기때문에 가능한 일이다. 2014/02/28 - [프로그래밍/C언어] - 동적배열 자료구조의 시작 2014/03/17 - ..

반응형