Data Structure 데이터가 어떻게 저장되고 나오는지 구체적인 방법 구체적인 구조를 사용한 ADT의 구현(implementation) Operation이 수행되고 operation의 효율은 구조에 따라 다르다. -> 이때 operation의 효율의 평가는 Big-O Notation으로 측정한다. ADT(Abstract Data Type) 이름 그대로 해석하면, 함축적 데이터 타입이다. Operation을 가지고 있고 구현은 하지 않는다. like 명세서 사칙연산이 하나의 데이터 타입이라고 하면 더하기, 빼기, 곱하기, 나누기는 각각 operation Q. ADT는 구현을 하지 않고 명세만 한다고 했는데 그럼 구현은 어떤 걸로 할까? A. 구현은 C++, Python 등등 언어로 한다. => Dat..
Array는 무엇일까? Array는 배열을 의미한다. 데이터 요소들의 모음집(collection)이다. 배열의 데이터 요소들은 homogeneous한 특성을 가진다. homogeneous란? 같은 타입을 가진다는 의미 ex) [1,2,3,4] int 배열에 string이 올 수 없다. int 배열은 int로만 이루어져 있어야함! 배열 요소(원소)는 연속된 메모리 위치에 저장된다. Python, C++에서는 인덱스 0으로 시작하는 연속된 인덱스들을 사용하여 주소 지정을 할 수 있다. 배열은 static data structure 즉, 정적 자료구조이다. 프로그램이 실행되는동안 사이즈 증가나 감소 불가능 배열은 string, int 같은 데이터 타입 뿐만 아니라 reference로 이루어질 수 있다. +)물..
1. 스택이란? stack은 쌓는다는 의미를 가지는 자료구조이다. LIFO(Last In First Out) 나중에 넣은 게 먼저 나오는 특성을 가진다. FILO(Fist in Last Out) 먼저 넣은 게 나중에 나오는 특성을 가진다. (결국엔 LIFO와 FILO는 같은 말이다.) 쉽게 프링글스통이라고 생각하거나 바닥이 막힌 상자라고 생각하면 된다. -> 나중에 들어간 원소가 나올 때는 먼저 나오는 특성을 보인다. 2. 스택의 성질 원소의 추가와 제거 O(1) 제일 상단 원소 확인 O(1) 특정 데이터를 찾기 O(n) 3. 스택의 기능 push : 스택에 원소를 추가하는 기능 (밀어넣는다) pop : 스택 꼭대기에 위치한 원소를 제거하는 기능(맨 마지막에 넣은 원소 제거) top : 스택 꼭대기에 위..