u_ju
우주의 우당탕탕개발일지
u_ju
전체 방문자
오늘
어제
  • 분류 전체보기 (118)
    • 팀 프로젝트 (2)
    • 내배캠 WIL & TIL (91)
    • JS (0)
    • React (1)
    • CS (23)
    • Next (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코딩#바보#오류투성이#팀프로젝트
  • 배열#함수
  • Component를 처음 선언하는 것을 Mount 라고 한다던데...?#props #state
  • 일요일 오늘은 내가 바로 함수만들기 요리사 !
  • 회의감#현타#나름뿌듯#고민거리#코딩#IT#CSS#JS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
u_ju

우주의 우당탕탕개발일지

CS

링크드 리스트에 관하여

2023. 8. 7. 16:44

링크드 리스트(Linked List)는 데이터를 순서대로 저장하는 선형 자료구조입니다. 각 데이터 요소는 노드(Node)라고 불리는 객체로 구성되며, 각 노드는 데이터와 다음 노드를 가리키는 포인터(또는 링크)로 이루어져 있습니다. 링크드 리스트의 가장 처음 노드를 가리키는 포인터는 보통 "헤드(Head)"라고 불리며, 마지막 노드는 보통 "테일(Tail)"로 표현합니다.

링크드 리스트는 배열과는 달리 데이터 요소들이 메모리 상에 연속적으로 배치되지 않으며, 각 노드는 다음 노드의 위치를 포인터로 가리키면서 연결되어 있습니다. 이러한 특성으로 인해 데이터의 삽입, 삭제, 이동 등이 배열에 비해 더 효율적으로 수행될 수 있습니다.

링크드 리스트의 기본 구조는 다음과 같습니다:

노드(Node):
   - 데이터(Data): 하나의 데이터 요소를 저장하는 공간
   - 다음 노드를 가리키는 포인터(Next): 다음 노드의 메모리 주소를 저장하는 공간

링크드 리스트(Linked List):
   - 헤드(Head): 링크드 리스트의 첫 번째 노드를 가리키는 포인터
   - 테일(Tail): 링크드 리스트의 마지막 노드를 가리키는 포인터

링크드 리스트에 데이터를 추가하거나 삭제할 때는 일반적으로 다음과 같은 절차를 따릅니다:

1. 데이터 추가(노드 삽입):
   - 새로운 노드를 생성하고 데이터를 저장합니다.
   - 이전 노드(또는 테일)의 포인터를 새로운 노드로 설정하고, 새로운 노드의 포인터를 다음 노드(또는 Null)로 설정합니다.

2. 데이터 삭제(노드 삭제):
   - 삭제하려는 노드의 이전 노드(또는 헤드)의 포인터를 삭제하려는 노드의 다음 노드로 설정합니다.
   - 삭제하려는 노드를 메모리에서 해제합니다.

링크드 리스트는 크기가 동적으로 변경될 수 있으며, 데이터의 삽입과 삭제가 빈번하게 일어나는 상황에서 유용하게 사용되나 특정 인덱스에 직접 접근하는 데에는 배열보다 비효율적이므로, 특정 인덱스에 빠르게 접근해야 하는 경우에는 배열이 더 적합할 수 있다.

'CS' 카테고리의 다른 글

자주쓰는 색상을 React에서 관리하는 방법  (0) 2023.08.07
부모 자식간의 교류에 관하여.  (0) 2023.08.07
Redux 상태관리의 주요 개념들과 연결 관계  (0) 2023.04.07
Semantic HTML의 필요성  (0) 2023.04.07
React의 state와 props에 관하여.  (0) 2023.04.05
    'CS' 카테고리의 다른 글
    • 자주쓰는 색상을 React에서 관리하는 방법
    • 부모 자식간의 교류에 관하여.
    • Redux 상태관리의 주요 개념들과 연결 관계
    • Semantic HTML의 필요성
    u_ju
    u_ju

    티스토리툴바