자료구조 5

[자료구조] 스택

Stack  - 후입선출 (Last-In-First-Out - LIFO)  - ex) 인터넷 브라우저 뒤로 가기, Ctrl + zStack 예제1. 우선 List와 같이 Stack 구현에 사용할 IStack 인터페이스를 생성package stack;public interface IStack { void push(T data); T pop(); T peek(); int size();} 2. IStack을 구현할 MyStack 클래스를 생성 후 메서드를 생성package stack;public class MyStack implements IStack { @Override public void push(T data) { } @Override pub..

[자료구조] 리스트 - DoubleLinkedList

LinkedList는 아래 사진과 같이 Next Node만을 사용하여 Node를 관리 했었더라면DoubleLinkedList는 아래 사진과 같이 Next Node와 Prev Node를 함께 사용하여 Node를 관리한다.LinkedList는 맨 앞에 있는 head node 부터 마지막 node 까지 순차적으로 조회를 해야 했다면DoubleLinkedList는 List의 절반인 중간 시점 부터 head와 가까우면 head 부터 tail과 가까우면 tail 부터 조회가 가능하다. DoubleLinkedList예제1. 우선 DoubleLinkedList도 Node를 기반으로 하기 때문에 Node를 먼저 생성이전 LinkedList는 next Node만 관리를 해줬더라면 DoubleLinkedList는 해당 No..

[자료구조] 리스트 - LinkedList

Linked List 장점  - 배열의 복사나 재할당없이 데이터 추가 가능  - 유연한 공간Linked List 단점  - 데이터 접근에 대한 시간이 늘어남 LinkedListArray추가O(N)O(1), O(N)삽입O(N)O(N)삭제O(1)O(N)검색(조회)O(N)O(1) LinkedList 예제1. 우선 LinkedList는 Node를 기반으로 하기 때문에 Node를 먼저 생성private class Node { T data; Node next; Node(T data) { this.data = data; } Node(T data, Node next) { this.data = data; ..

[자료구조] 리스트 - ArrayList

1. List의 특징  - 선형적인 자료구조  - 데이터를 일렬로 늘여 놓은 형태  - 순서  - 데이터 삽입하기  - 데이터 삭제하기  - 리스트 탐색하기 2. List의 종류  - ArrayList  - LinkedList : Single Linked List, Double Linked List 3. ArrayList  - 배열 기반의 리스트  - 메모리 공간을 연속적으로 사용import java.util.ArrayList;import java.util.List;public class Main { public static void main(String[] args) { // 문자열 리스트 생성 List list = new ArrayList(); // 리스트에..

[자료구조] 자료구조 기초

자료(Data)와 자료 구조(Data Structure)  - 자료(데이터)를 어디에 어떻게 저장하여 관리할지 (검색, 순회, 저장, 삭제, 변경 등)  - 자료를 담는 추상적인 툴  - 컴퓨터의 자원은 한정적이며 제한된 제약조건 내에 정확한 결과를 내야함  - 데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요 공간 복잡도  - 데이터 관리에 필요한 공간  - 데이터 양의 변화에 따른 공간의 변화  - 예상 소요 공간 측정 시간 복잡도  - 데이터 처리에 소요되는 시간  - 데이터 양의 변화에 따른 소요 시간의 변화  - 예상 처리 시간을 측정  - 지연 장애가 발생했을 때 왜 발생했는지를 찾을 수 있는 근거 시간 복잡도  - O(1) : 입력 데이터의 크기와 상관없이 항상 일정한 시간..