스택이란 | 인터넷 브라우저가 간 순서를 저장하는 것 |
데이처를 차곡차곡 저장해두고 있다가 가장 먼저 들어간 데이터가 마지막으로 삭제 됨 |
|
last in-first out/fist in-last out 후입선출 |
스택의 구현 | 배열을 이용해서 숫자를 여러개 저장할 수 있게 변수 생성 |
배열에 직접 접근해서 숫자를 저장할 수 있으면 안되기 때문에 접근 제어자로 제어 |
|
숫자를 어디까지 저장했는지 가리키는 변수 top 생성 | |
생성자 | 크기를 전달받아서 해당 크기만큼 정수를 저장할 수 있는 배열 생성 |
top에 -1 저장 |
스택의 연산 | |
isEmpty | 스택에 값이 모두 비어있는지 학인 |
top이 -1이면 true를 반환, 그렇지 않으면 false를 반환 |
|
isFull | 스택에 값이 모두 저장되어 있는지 확인 |
top이 배열의 크기보다 1작으면 true 반환 그렇지 않으면 false를 반환 |
|
peek | 제일 마지막에 저장된 값 확인 |
제일 마지막에 저장된 값을 반환 | |
push | 데이터를 저장하는 연산 |
저장할 데이터를 전달받고 스택이 가득차 있지 않으면 top을 1증가하고 해당 인덱스 번호의 배열에 데이터 저장 |
|
pop | 데이터를 삭제하는 연산 |
스택이 비어있지 않으면 top 인덱스 번호의 배열에 값을 꺼내고 top 인덱스 번호의 배열에 값을 비워주고 top을 1 감소 |
|
display | 스택에 저장된 모든 데이터를 출력하는 기능 |
큐 Queue | 선입선출('FIFO') 방식으로 가장 먼저 들어온 데이터가 가장 먼저 나감 |
데이터를 삽입하는 연산과 삭제하는 연산이 양쪽에서 진행됨 | |
큐의 구현 | 배열을 이용해서 숫자를 여러개 저장할 수 있게 변수 생성 |
배열에 직접 접근해서 숫자를 저장할 수 있으면 안되기 때문에 접근 제어자로 제어 |
|
맨 앞에 데이터가 어디에 저장된건지 가리킬 front 변수 생성 | |
다음 데이터가 어디에 저장될건지 가리킬 rear 변수 생성 | |
현재 저장된 데이터의 수를 저장할 num 변수 생성 | |
생성자 | 크기를 전달받아서 해당 크기만큼 정수를 저장할 수 있는 배열 생성 |
front 및 rear는 0 을 저장 | |
큐의 연산 | |
isEmpty | 큐에 값이 모두 비어있는지 학인 |
num가 0이면 true 반환 그렇지 않으면 false 반환 |
|
isFull | 큐에 값이 모두 저장되어 있는지 확인 |
배열의 크기가 num랑 같으면 true 반환 그렇지 않으면 false 반환 |
|
enQueue | 데이터를 저장하는 연산 |
저장할 숫자를 하나 전달받고 큐가 가득 찼으면 가득찼다고 출력 그렇지 않으면 현재 rear의 위치의 배열에 전달받은 숫자를 저장하고 rear 1증가 후 num 1 증가 |
|
deQueue | 데이터를 삭제하는 연산 |
큐가 비어있으면 비어있음 이라고 출력 그렇지 않으면 현재 front의 위치의 배열의 값을 꺼내고 front 1증가 후 num 1 감소 |
|
display | 큐에 저장된 모든 데이터를 출력하는 기능 |
재귀 | 메소드가 자기 자신을 실행하는 형태 |
재귀 활용 | 최대공약수(유클리드 호제법) |
하노이 탑 | |
'bootcamp > Java' 카테고리의 다른 글
1206 트리 (0) | 2023.12.22 |
---|---|
1205 리스트 (0) | 2023.12.22 |
1201 보안 (0) | 2023.12.22 |
1129 jdbc/jsp서블릿 (0) | 2023.12.22 |
1129 소켓통신..등등.. (0) | 2023.12.17 |