자료구조 3

자료구조 ( 2. 스택과 큐 )

3. 스택( Stack ) 스택( Stack )이란 '쌓다'라는 뜻으로, 데이터를 차곡차곡 쌓아올린 형태의 자료구조이다. 스택은 데이터 입력 방향과 출력 위치가 같아, 후입선출( LIFO, Last-In-First-Out ) 구조를 갖는다. 후입선출구조란 마지막에 들어온 데이터가 제일 먼저 출력되는 구조를 말한다. 스택에서 데이터를 삽입하는 연산을 'push', 삭제하는 연산을 'pop'이라고 부른다. 데이터의 삽입과 삭제가 일어나는 위치를 'top'이라고 부른다. 스택의 예시로는 가장 마지막에 실행된 것을 취소하는 실행 취소 같은 것이 있다. 4. 큐( Queue ) 큐(Queue)란 스택과 다르게 입력과 출력 위치가 다르다. 큐는 선입선출( FIFO, First-In-First-Out ) 구조를 갖는..

자료구조 ( 1. 배열과 연결리스트 )

자료구조( 데이터 구조 ) 란? 데이터를 좀 더 효율적으로 삽입, 삭제, 검색 등 데이터를 관리하기 위한 방법을 말한다. 어떤 데이터에 어떤 데이터 구조를 사용하는지에 따라 효율성이 달라진다. 자료구조의 종류 1. 배열 ( Array ) 할당된 유한 개의 기억 장소에 동일한 자료형의 원소들을 대응해주는 데이터 구조이다. 각 데이터에 인덱스를 대응해주고, 인덱스를 통해 해당 데이터에 접근할 수 있다. 장점 : 인덱스를 통해 바로 데이터에 접근할 수 있다. 단점 : 배열의 크기를 초기에 할당받아 중간에 변경할 수 없고, 데이터를 수정(삽입, 삭제 등)을 할 때 모든 데이터들을 이동시켜야 한다는 문제점이 있다. 2. 연결 리스트 ( Linked List ) 데이터를 순차적으로 연결하여 나열하는 데이터 구조이다..

알고리즘 ( 1. 재귀 알고리즘 )

1. 재귀 알고리즘 재귀 알고리즘이란 같은 알고리즘을 사용하여 정의한 알고리즘을 재귀(recursive) 알고리즘이라고 한다. 재귀적 알고리즘은 비재귀적(nonrecursive) 또는 반복적(iterative) 알고리즘과 대조된다. 재귀의 요소에는 재귀 케이스(recursion)와 베이스 케이스(base case)가 있다. 이때 베이스 케이스가 중요하다. 베이스 케이스는 재귀 호출을 통해 작아진 문제를 직접 해결한다. //n번째 수까지 더하는 함수 int rsum(int n){ if(n==1) return 1; //베이스 케이스 (base case) else return n + rsum(n-1); //재귀 케이스 (recursion) 2. 기본 규칙 1) 베이스 케이스 모든 재귀 함수는 베이스 케이스를 ..