이카's
반응형
article thumbnail
자료구조 - LinkedList
카테고리 없음 2023. 6. 7. 01:34

링크드 리스트 연결 리스트라고 한다. 배열하고의 차이점으로 순차적으로 연결된 공간에 나열하는 구조라면, 링크드 리스트는 떨어진 곳에 데이터를 화살표로 연결하여 관리하는 구조이다. 말 그대로 가장 큰 특징은 포인터라는 개념이다. 아래 코드르 보며 이해를 해보자. 생성자 구현 기본적으로 node라는 객체를 연결해 주는 코드를 만들 것이다. private Node head; public MyLinkedList() { this.size = 0; this.head = null; // dummy head node } Node 구현 링크드 리스트안에 구현을 했지만 따로 구현해도 크게 문제가 없다. private class Node { T data; Node next; Node(T data) { this.data = ..

article thumbnail
자료구조 - 배열 (feat. Java, Python), 자매품 - Java Collection ArrayList
SW/자료구조 2023. 6. 1. 02:30

배열이란? 배열을 왜 쓸까? 같은 종류의 데이터를 관리하기 하기 위해서 같은 종류의 데이터를 순차적으로 저장 대전제는 데이터를 쉽게 관리하는 목적이다. 그것을 한 묶음으로 관리하는게 효율적이다. 근데 이걸 또 순차적으로 있다면? 한눈에 봐도 데이터를 다루기가 쉬울 것이다. 장점 - Index 배열의 가장 큰 장점은 Index라고 할 수 있다. 배열는 공간에 각각의 element 마다 각각의 index가 생긴다. (각각각각) 각 요소에 번호가 생기면 데이터 안에 하나의 값만 가져올 때 굉장히 편해진다. 또한 값을 찾을 때 소모되는 비용은 index로 인해 시간복잡도 O(1)을 가진다. 단점 - 배열의 크기설정 & 추가/삭제 배열의 가장 큰 단점 데이터를 삭제와 추가 하는 부분에서 발생한다. 배열은 크기를 ..

article thumbnail
자료구조 정리 #1 배열(Array), 리스트(LinkedList), 큐(Queue), 스택(Stack)
SW/자료구조 2020. 11. 12. 02:11

- 자료구조의 분류 선형구조 1. 배열 (Array) (선형 리스트) 배열의 특징은 논리적 순서와 물리적 순서가 일치한다. 즉, index값을 통해 원소 접근이 용이하며, 구현이 쉽다. 하지만 단점으로 삽입, 삭제 등에 대한 연산에 필요한 Cost가 높다. 삭제를 하는 경우 순서를 맞추기 위해 뒤의 원소들을 앞으로 Shift 연산을 해줘야 한다. 삭제 1 2 3 4 5 1 2 삭제 4 5 1 2 4 5 1 2 4 5 2. 연결 리스트(LinkedList) 배열의 삽입/삭제의 단점을 극복하고자 만든 개념이 리스트이다. 배열은 논리적, 물리적 저장이 순서대로 되어 있다. 하지만 리스트는 논리적으로는 순서대로 되어 있으나 물리적으로는 순서대로 되어있지 않다. 대신 각 원소가 index위치에 ..

반응형