리스트

ㅅㅇㄱ·2024년 9월 28일

CS

목록 보기
16/19
  • 장점 : 삽입 삭제가 쉬움(O(1)), 기억공간 관리가 쉬움
  • 단점 : 포인터 저장이 필요함, 탐색 or 특정 노드 접근시 시간이 오래걸림(O(n))

단순연결리스트

  • 구조
  • 삽입 :
    • pre노드가 있을시
      • 삽입할 노드의 링크 ← 이전 노드의 링크
      • 이전노드의 링크 ← 삽입할 노드의 주소
    • pre노드가 없을시
      • 삽입할 노드의 링크 ← NULL
      • 헤드 ← 삽입할 노드

  • 삭제 :
    • pre노드 있을시
      • 이전노드의 링크 ← 삭제할 노드의 링크
    • 없을시
      • 헤드 ← 헤드의 링크
    • 메모리 free

체인연산

  • 리스트를 역순으로 만드는 것

  • 역순 만들기
    • lead노드에서 시작
    • middle ← NULL
    • lead가 NULL일 때 까지
      • trail ← middle
      • middle ← lead
      • lead ← lead의 다음 노드
      • middle주소의 링크 ← trail

원형연결리스트

  • 장점
    • 어느 한 노드로부터 다른 모든 노드에 접근 가능
    • 임의의 노드 검색 시 현재노드부터 검색 가능
  • 단점
    • 노드 검색 시 무한루프에 빠질 수 있음(헤드노드로 해결 가능)

  • 삽입
    • 리스트 공백
      • 마지막 노드 ← 노드
      • 노드의 링크 = 노드
    • 아닐때
      • 노드의 링크 ← 마지막의 링크
      • 마지막의 링크 ← 노드

이중연결리스트

  • 장점
    • 특정 노드에서 양방향으로 자유롭게 움직일 수 있음
  • 단점
    - 공간을 많이 차지함, 코드가 복잡해짐
  • 삽입
    • 노드의 L링크 ← 전노드
    • 노드의 R링크 ← 전노드의 R링크
    • 앞노드의 L링크 ← 노드
    • 전노드의 R링크 ← 노드

  • 삭제
    • 뒷 노드의 R링크 ← 삭제할 노드의 R링크
    • 앞 노드의 L링크 ← 삭제할 노드의 L링크

0개의 댓글