[자료구조] Linked list 데이터 조회 [VisuAlgo.net]

2020. 4. 2. 02:32·자료구조 + 알고리즘
728x90


두 가지 데이터 조회 방법이 있다.

1. 77이라는 값을 가진 노드를 조회하겠다.

2. 네번째 자리 (인덱스3)에 있는 값을 가져오고 싶다.

순서대로 알아보자.

 

 


77이라는 값을 가진 노드를 조회하겠다. ( v = 77 이라고 visualgo.net에서 설정하고 간다. )

간단하다.

index = 0, temp = head

while (temp.item !=v)

  index++, temp = temp.next

  if temp == null

    return NOT_FOUND

그냥 코드 읽어보면 다 알거다.


네번째 노드의 데이터를 조회하고 싶다면 어떻게 할까?

 

첫번째 노드로 접속하고, 넥스트하고 인덱스 카운트, 넥스트하고 인덱스 카운트.. 하면서

해당 인덱스로 왔을 때, 그 노드에 있는 값을 출력해주면 된다.

'물어서 물어서 차례로 이동을 해야 한다.'

 

반면, ArrayList에서는 ArrayList가 가진 인덱스의 특징을 강력하게 활용할 수 있다.

'그 주소로 바로, 직접 접근할 수 있다' -> 속도가 굉장히 빠르게 데이터를 가져올 수 있다.

 

그래서 ArrayLists는 인덱스 조회로 값을 가져올 때, LinkedList와 비교도 안되게 빠르다.

 

그래서 우리가 ArrayList와 LinkedList를 각 사용 목적에 맞게 잘 사용을 해줘야 한다.

각각의 장단점을 조합해서 우리가 필요한 자료구조를 만들어 낼 수도 있겠다. (또다른 단점이 생길 수 있지만)

 

 

이렇게 뭐든지 Trade off가 존재한다.

 

 

ㅇ추가,삭제는 LinkedList

ㅇ인덱스 조회는 ArrayList

 

ㅇLinkedLIst는 포인터,참조값으로 각각의 노드가 연결되어있기 때문에, 노드를 무한대로 키울 수 있다. List의 크기가 확정적이지가 않다. (메모리가 허용하는 한에서..)

ㅇArrayList에서는 배열이라고 하는 아주 융통성없는 자료구조를 이용하기 때문에, 배열이 갖고있는 크기를 넘어서면 에러가 발생한다. 혹은 배열의 크기를 과다하게 지정할 경우, 공간의 낭비를 만들 수 있다.

 

 

출처

https://programmers.co.kr/learn/courses/17/lessons/805

728x90

'자료구조 + 알고리즘' 카테고리의 다른 글

[자료구조] LinkedList 구현 - 데이터 추가 / addFirst[Java]  (0) 2020.04.21
[자료구조] LinkedList 구현 - 객체생성[Java]  (0) 2020.04.21
[자료구조] Linked list 데이터 삭제 [VisuAlgo.net]  (2) 2020.04.02
[자료구조] Linked list 데이터 추가 [VisuAlgo.net]  (0) 2020.03.30
[자료구조] Linked list의 구조  (1) 2020.03.28
'자료구조 + 알고리즘' 카테고리의 다른 글
  • [자료구조] LinkedList 구현 - 데이터 추가 / addFirst[Java]
  • [자료구조] LinkedList 구현 - 객체생성[Java]
  • [자료구조] Linked list 데이터 삭제 [VisuAlgo.net]
  • [자료구조] Linked list 데이터 추가 [VisuAlgo.net]
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (386)
      • 미분류글 (30)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (58)
      • yyeeennyy (25)
  • 블로그 메뉴

    • 링크

    • 공지사항

      • ^o^/♡
    • 인기 글

    • 태그

      input-output
      코드업
      혼공학습단
      codeup
      사후분석
      R데이터분석
      혼공머신
      16비트 컴퓨터
      한빛미디어
      컴퓨터구조
      정렬
      알고리즘
      미분방정식
      혼공자
      혼공단
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    히어로맛쿠키
    [자료구조] Linked list 데이터 조회 [VisuAlgo.net]
    상단으로

    티스토리툴바