4장, 5장 연결리스트2, 3 요약

교재: 윤성우의 열혈자료구조
new air max
연결리스트(Linked List)를 사용하는 이유?
배열은 메모리의 특성이 정적이어서(길이의 변경이 불가능해서) 메모리의 길이를 변경하는 것이 불가능하다. 그래서 이를 극복하기 위해서 사용하는 것이 동적인 메모리이다.
Get Oakley sunglasses
새로운 노드를 추가할 때, 리스트의 머리와 꼬리 중 어디에 저장하는 것이 좋을까?

  • 머리에 넣을 경우: 포인터 변수인 꼬리가 불필요하지만 저장된 순서를 유지할 수없다.
  • 꼬리에 넣을 경우: 저장된 순서는 유지할 수 있지만 포인터 변수인 꼬리가 필요하다.
리스트의 자료구조의 정의에서 데이터의 저장순서는 없으므로, 머리에 넣어도 상관은 없으므로 일반적으로는 노드를 머리에 추가하는 방식을 택한다.
더미 노드(Dummy or Sentinel Nodes)
더미 노드는  리스트에 맨 앞에 추가되는  비어 있는 노드를 말한다. 더미 노드가 필요한 이유는 노드의 삽입, 조회, 삭제 시에 코드의 일관성을 줄 수 있기 때문이다. 만약 더미 노드가 없다면 첫 번째 노드를 조작할 때와 다른 노드를 조작할 때의 코드가 달라야 하기 때문에 코드가 복잡해 진다.

원형 연결 리스트 (Circular Linked List)
oakley sunglasses repair
양방향 연결 리스트 (Double Linked List)