TIL(Today I Learned)

Day.9 자료구조 그리고 알고리즘 언어의 선택(Linked List)

지팡구 2022. 11. 10. 20:49

어제의 연속선상으로 기초 자료구조와 알고리즘을 공부

다만 고민되는 것이 있다면, 파이썬 vs 자바

자바를 썩 잘하는 것은 아니지만, 익숙함

파이썬, 성능이 좋고 좋은 라이브러리가 많음, 익숙치 않음

어떤 언어를 가지고 직접 구현을 해보면서 따라갈지 고민이 된다. ( 오늘은 파이썬 강의를 가지고 자바로 바꿔 학습 진행 )

알고리즘의 공부 방향에 대해서도 고민중.. (빨리 이 고민을 해결해야 할텐데)

 

오늘의 학습 정리 및 궁금증

 

1. Linked List

기차를 생각하면 가장 이해하기 쉽다. (앞 칸과 뒷 칸의 연결)

각 노드, 그리고 데이터와 포인터 => 각 노드들은 데이터와 포인터를 가지고 있다.

ArrayList에 비해 데이터의 추가, 삭제가 용이하지만

따로 인덱스가 없어서 특정 요소에 접근하기 위해 순차 탐색이 필요해 속도가 떨어진다는 단점이 존재한다.

 

또한 ArrayList는 내부 배열에 객체를 저장해서 인덱스로 관리하지만

LinkedList는 인접 참조를 링크해서 체인처럼 관리한다 (그래서 기차라고 비유함)

 

 

그래서 탐색과 정렬을 자주하는 경우엔 배열, 데이터의 추가 및 삭제가 많은 경우엔 링크드리스트를 사용하는게 좋다.

 

https://opentutorials.org/module/1335/8821

 

Linked list - Data Structure (자료구조)

소개 Linked List는 Array List와는 다르게 엘리먼트와 엘리먼트 간의 연결(link)을 이용해서 리스트를 구현한 것을 의미합니다. 그래서 이름도 linked list입니다. 그렇게 보면 linked list에서 가장 중요한

opentutorials.org

https://coding-factory.tistory.com/552

 

[Java] 자바 LinkedList 사용법 & 예제 총정리

LinkedList란? 연결 리스트(LinkedList)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조입니다. 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노

coding-factory.tistory.com