(자료구조,알고리즘) Stack & Queue

grapefruit·2022년 9월 23일
0

BE 2022-09.19~09.23

목록 보기
3/3

Stack이란?

자료 구조 중 하나인 Stack의 사전적 정의는 '쌓다', '더미'이다.
상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료 구조라고 할 수 있다.

Stack의 특징

LIFO(Last In First Out), 가장 마지막에 넣은 데이터가 가장 먼저 출력된다.

스택 메서드

스택 안에 값 넣기

스택.add(값); 

스택 크기 확인

stack.size();

스택 출력 시 나올 값 확인

스택.peek();

스택 값 변경하기

스택.set(인덱스, 값);

스택 값 제거하기

스택.remove(인덱스); 

스택 인덱스의 값 확인

스택.elementAt(인덱스);

스택 특정 값이 어느 인덱스에 들었나 확인

스택.indexOf("값");

스택 값 뽑아내기(마지막에 넣은 순서대로 나옴)

스택.pop();

스택 비우기

스택.clear();

스택 비었는지 확인(true, false)

스택.empty();

Stack 사용법

 Stack<Integer> stack = new Stack<>();

// 데이터 삽입
stack.push(1);
stack.push(2);
stack.push(3);

// 데이터 출력
stack.peek(); // 3 출력 (맨 위의 값 출력)

// 데이터 삭제
stack.pop(); // 3 제거
stack.pop(); // 2 제거
stack.pop(); // 1 제거
stack.clear(); // 모든 데이터 제거

Queue란?

Queue의 사전적 의미는 무엇을 기다리는 사람,
차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미한다.
이처럼 줄을 지어 순서대로 처리되는 것이 Queue라는 자료구조이다.

큐queue 특징

FIFO(First In First Out), 가장 먼저 넣은 데이터가 가장 먼저 출력된다.

큐 메서드

큐 안에 값 넣기

큐명.offer(값);

큐 다음 출력 값 확인하기

큐명.peek();

큐 안의 값 출력하기

큐명.poll();

큐 안의 특정 값 빼기

큐명.remove(값);

큐 크기 확인

큐명.size();

큐 비우기

큐명.clear();

큐 비어있는지 확인

큐명.isEmpty();

Queue 사용법

Queue<Integer> q = new LinkedList<>();

// 데이터 삽입
q.offer(1);
q.offer(2);
q.offer(3);

// 데이터 출력 삭제
q.peek(); // 1 출력 (맨 위의 값 출력)
q.poll(); // 1 출력 후 삭제

// 데이터 삭제
q.remove(); // 2 삭제
q.clear(); // 모든 데이터 삭제

느낀점

진짜 알것같으면서도 모르겠는 이 느낌
바다위를 떠다니는 부표같은 느낌이다...
그나마 내가 머릿속에 지금 당장에 기억에 남는건
LIFO,FIFO
왜? 내가 전공한 과에서 아주 자주듣고 기본적인 내용이었기 때문...^^...
역시 전공했던 내용들은 기억에 많이 있지만, 비전공자인 나는 오늘도 눈물을...

profile
개발자몽

0개의 댓글