티스토리 뷰

자료구조

베니의 자료구조 - Array List와 Linked List의 비교

사용자 개발자 베니 2019. 9. 23. 23:17

베니의 자료구조 - Array List와 Linked List의 비교

베니는 생활코딩 이고잉님의 자료구조 강의, 구글링을 통해 자료구조를 공부하고 있습니다.  
인용하는 내용의 출처는 링크를 남겨놓고 있습니다.
도움 주신 모든분들께 감사드립니다!

생활코딩 이고잉님 , 초보몽키님의 개발공부로그  

목차

1. 비교

2. 베니의 생각

 

Array List와 Linked List 무엇이 좋을까요?


1.비교

(1) Element나 Node를 삽입이나 삭제 할 때

      - Array List   :  삽입이나 삭제 후 뒤에 있는 Element들을 모두 한칸씩 당기거나 밀어주어야 합니다.

      - LInked List : 삽입이나 삭제하는 위치와 연결되어 있는 노드들의 경로만 변경해주면 됩니다. ( 승리 ! ) 

 

(2) List의 데이터 중 하나를 가져올 때

       - Array List   : 배열을 이용한 List이므로 데이터와 매칭되는 index를 통하여서 원하는 값에 빠르게 접근이 가능합니다. ( 승리 ! ) 

       - Linked List : index가 존재하지만 원하는 데이터를 얻기 위해서는 순차적으로 접근을 하기 때문에 Array List보다 오래 걸립니다.

 

(3) Element를 계속해서 추가 할 필요가 있을 때

      - Array List   : 배열을 기반으로 만들었기 때문에 크기가 정해져 있고 정해진 크기를 넘어가면 원래 크기의 2배의

                              크기를 가진 배열을 만들고 데이터를 옮기기 때문에 메모리 공간 사용이 비효율적입니다.

      - Linked List : 크기가 정해져 있지 않아 현재 사용중인 Element 수 만큼의 메모리 공간만 사용합니다. ( 승리! )


2.베니의 생각

비교는 Array List와 Linked List의 특징을 가지고 간단하게 비교하였습니다.
하지만 관련해서 실제적인 성능 비교를 진행하신 분들의 글들을 보니 위에 비교가
무조건 맞는 것이 아니라 List의 크기와 인덱스의 위치에 따라 성능이 변하는 것들을 얼핏 보았습니다.

그래서 오늘 다짐한 것은 블로그 글들을 하나의 카테고리를 정리를 하고 나서 리팩토링 하듯이
내용 추가와 명확하지 않은 부분들은 꼭 수정과 추가를 해야겠다는 생각이 들었습니다.
Linked List에 대해서도 지금까지 설명한 것은 단방향 리스트만의 내용이고 양방향은 다른 특징들이
있다는 것들을 마지막 강의에서 알았네요.. ㅜㅜ 제 수준에 따라 글의 수준이 달라지니 꼭 다시 수정하겠습니다!

다음 글은 양방향 연결 리스트( Doubly Linked List )에 대해 작성해보겠습니다!

TODO
- 베니의 자료구조 - 양방향 연결 리스트( Doubly Linked List )

 

댓글
댓글쓰기 폼
공지사항
최근에 달린 댓글
Total
377
Today
0
Yesterday
0
링크
«   2020/08   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
글 보관함