본문 바로가기

Language/Structure

[Structure] Queue (First In First Out) Queue FIFO(First In First Out)의 성질을 가진 자료구조 먼저 들어간 데이터가 먼저나오게되는 구조 사용예 우선 순위가 같은 작업 예약 (프린터의 인쇄 대기열) 은행 업무 콜센터 고객 대기시간 주로 BFS(너비 우선 탐색)에 사용된다. 자주 사용되는 함수 add : 데이터를 넣는것 poll : 데이터를 꺼냄 (최상단 자료를 지우고 반환한다.) peek : 데이터를 꺼냄 (최상단 자료를 지우지 않고 반환한다.) Queue의 구조 Queue의 선언 Queue의 사용(연습문제) 1. Queue의 구조 위 그림은 Queue의 구조이다. Stack과는 달리 데이터가 들어오는곳과 나가는곳이 다르다. 데이터들을 add하면 먼저 들어간 데이터가 먼저 나가게된다. 데이터를 red, white, bla.. 더보기
[Structure] Stack (Last In First Out) Stack LIFO (Last In First Out)의 성질을 가진 자료구조 나중에 들어간 데이터가 먼저나오는 구조 데이터의 추가/삭제는 O(1)의 시간복잡도를 갖는다 하지만, 탐색은 O(n)의 시간복잡도를 가짐 연결리스트로 구현이 가능하다. stack underflow : 비어있는 스택에서 원소를 추출하려 할때 stack overflow : 스택이 넘치는 경우 사용예 웹 브라우저 방문기록 역순 문자열 만들기 실행취소 주로 DFS(깊이 우선탐색) 에 사용된다. 자주사용되는 함수 push : 자료를 넣는것 pop : 자료를꺼냄 (최상단 자료를 지우고 반환한다.) peek : 자료를꺼냄 (최상단 자료를 지우지않고 반환한다.) Stack의 구조 Stack의 선언 Stack의 사용(연습문제) 1. Stack의.. 더보기
[Structure] Array (배열) Array ( 배열 ) 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료구조 배열을 구성하는 단위 데이터를 element(원소) 라고 한다. 배열의 크기를 줄이거나 늘리고 싶다면, 동적으로는 불가능하고 재선언을 해야한다. 이차원 배열, 다차원 배열도 생성이 가능하다. 1. 배열의 구조 2. 배열의 선언 3. 배열의 사용 4. 배열의 활용 1. 배열의 구조 예를들어 1,3,5,7이라는 데이터를 담고있는 배열은 위와같은 구조로 이루어져있다. INDEX는 1이 아닌 0부터 시작한다. List도 같은 개념으로 INDEX는 1부터 시작하므로, 자주 사용하기때문에 익숙해져야한다. INDEX가 있기때문에 접근하고 싶은 DATA에 바로 접근이 가능하다. ex) arr[0] = 1, arr[1] = 3 위 배열의.. 더보기