리스트 ADT / SLL / DLL / CDLL

2025. 5. 5. 22:47·[자료구조 & 알고리즘]
728x90

리스트 ADT

  • 목록 형태로 이루어진 자료구조
  • 개별 요소 = 노드
  • 첫번째 노드 → Head, 마지막 노드 → Tail

리스트와 배열의 차이

  • 배열 - 생성 시 반드시 크기를 지정해야한다.
  • 리스트 - 생성 시 크기를 지정하지 않아도 되며 길이 추가 및 축소가 자유롭다

SLL(Singly Linked List)

  • 한 방향으로만 연결된 링크드 리스트
  • 구조체를 선언하여 이용하며 한 구조체를 한 노드라고 칭함
  • Linked List에 필요한 연산
    • 노드 생성
    • 노드 추가
    • 노드 탐색
    • 노드 삭제
    • 노드 삽입
  • 더블 포인터를 사용하는 이유
    • 함수 안에서 head의 주소를 다른 주소로 할당할 경우 단순히 포인터가 가지고 있는 주소값만 전달 시 그 값을 복사해서 바꾸기 때문에 포인터가 가지고 있는 원본 주소값은 바뀌지 않는다.
    • 더블 포인터로 포인터 변수의 주소를 복사하여 전달하여야 해당 포인터가 가지고 있는 주소의 원본을 변경할 수 있는 것이다.

LinkdedList.c
0.00MB
LinkedList.h
0.00MB
Test_LinkedList.c
0.00MB


DLL(Doubly Linked List)

  • 양방향으로 연결된 링크드 리스트
  • 구조체에 앞, 뒤 노드의 주소를 담을 수 있는 포인터가 포하되어 있다.
  • 따라서 앞 뒤로의 이동이 가능하다

 

DoublyLinkdedList.h
0.00MB
DoublyLinkedList.c
0.00MB
Test_DoublyLinkedList.c
0.00MB


CDLL(Circular Doubly Linked List)

  • DLL이 동그랗게 연결된 구조
  1. 노드가 하나일때
    • head이자 tail
  2. 노드가 두개 이상일 때
    • tail의 다음 노드가 head를 가리킴
  • 나머지는 DLL과 동

CircularDoublyLinkedList.c
0.00MB
CircularDoublyLinkedList.h
0.00MB
Test_CircularDoublyLinkedList.c
0.00MB


위 코드들은 헤더, main, 함수 파일이다.

각각 링크드리스트에서 구현해야하는 생성, 추가, 삭제, 탐색 코드들을 정리하였다.

728x90

'[자료구조 & 알고리즘]' 카테고리의 다른 글

[자료구조 & 알고리즘] C언어 더블 포인터 뜯어보기  (0) 2025.05.08
[자료구조 & 알고리즘] C언어의 포인터(pointer), 구조체(structure), 힙(heap), 스택(stack)  (1) 2025.05.05
'[자료구조 & 알고리즘]' 카테고리의 다른 글
  • [자료구조 & 알고리즘] C언어 더블 포인터 뜯어보기
  • [자료구조 & 알고리즘] C언어의 포인터(pointer), 구조체(structure), 힙(heap), 스택(stack)
뽕규의 스케치북
뽕규의 스케치북
공부 열심히 해볼게요
  • 뽕규의 스케치북
    뽕규의 스케치북
    뽕규의 스케치북
  • 전체
    오늘
    어제
  • 링크

    • 파이썬 공식 문서
    • GitHub
    • 분류 전체보기 (37)
      • [파이썬] (17)
      • [데이터 분석] (3)
      • [Git&GitHub] (5)
      • [자료구조 & 알고리즘] (3)
      • [안드로이드 앱] (0)
      • [네트워크] (0)
      • [머신러닝 & 딥러닝] (0)
      • [SQL] (1)
      • [컴퓨터 구조 & 운영체제] (0)
      • [개발자 수학] (0)
      • [노션] (6)
      • [기타] (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    노션
    소스트리
    python
    파이썬
    GIT
    github
    *
    함수
    공부
    sourcetree
    push
    수식
    DB
    TODO
    기초
    깃
    발전
    개념
    깃허브
    pull
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
뽕규의 스케치북
리스트 ADT / SLL / DLL / CDLL
상단으로

티스토리툴바