HIGH JAVA DAY3 - Stack , Queue

어뮤즈온·2021년 1월 15일
0

고급자바

목록 보기
4/7
post-custom-banner
  • Stack : 후입선출(LIFO)의 자료 구조
  • Queue : 선입선출(FIFO)의 자료 구조
  • Stack과 Queue는 LinkedList를 이용하여 사용할 수 있다.

* LIFO : Last In First Out

Stack의 명령

  1. 자료 입력 : push(입력값)
  2. 자료 출력 :
  • pop( ) : 자료를 꺼내온 후 꺼내온 자료를 Stack에서 삭제한다.
  • peek( ) : 삭제 없이 자료를 꺼내온다.(주로 자료 확인용으로 사용)
  1. 데이터의 입구와 출구가 같다.
LinkedList<String> stack = new LinkedList<>();

stack.push("홍길동");
stack.push("일지매");
stack.push("강감찬");
stack.push("변학도");
//제일 먼저 들어간 데이터가 아래부터 채워지기 때문에 출력시 최근 데이터가 0번 인덱스

System.out.println("현재 stack값 : " + stack);
//현재 stack값 : [변학도, 강감찬, 일지매, 홍길동]

String data = stack.pop();
System.out.println("꺼내온 값 : " + data);
System.out.println("꺼내온 값 : " + stack.pop());
//꺼내온 값 : 변학도
//꺼내온 값 : 강감찬

System.out.println("현재 stack값 : " + stack);
//현재 stack값 : [일지매, 홍길동]

stack.push("성춘향");
System.out.println("추가 후 stack값 : " +  stack);
//추가 후 stack값 : [성춘향, 일지매, 홍길동]

System.out.println("꺼내온 값 : " + stack.pop());
//꺼내온 값 : 성춘향

System.out.println("삭제없이 꺼내온 값 : " + stack.peek());
System.out.println("현재 stack 값 : " + stack);
//삭제없이 꺼내온 값 : 일지매
//현재 stack 값 : [일지매, 홍길동]

Queue의 명령

  1. 자료 입력 : offer(입력값)
  2. 자료 출력 :
  • poll( ) : 자료를 꺼내온 후 Queue에서 꺼내온 자료를 삭제한다.
  • peek( ) : 삭제 없이 자료를 꺼내온다.
  1. 데이터의 입구와 출구가 다르다.
LinkedList<String> queue = new LinkedList<>();

queue.offer("홍길동");
queue.offer("일지매");
queue.offer("강감찬");
queue.offer("변학도");

System.out.println("현재 queue값 : " + queue);
//현재 queue값 : [홍길동, 일지매, 강감찬, 변학도]

String temp = queue.poll();
System.out.println("꺼내온 값 : " + temp);
System.out.println("꺼내온 값 : " + queue.poll());
System.out.println("현재 queue값 : " + queue);
//꺼내온 값 : 홍길동
//꺼내온 값 : 일지매
//현재 queue값 : [강감찬, 변학도]

queue.offer("성춘향");
System.out.println("현재 queue값 : " + queue);
//현재 queue값 : [강감찬, 변학도, 성춘향]

System.out.println("꺼내온 값 : " + queue.poll());
System.out.println("현재 queue값 : " + queue);
//꺼내온 값 : 강감찬
//현재 queue값 : [변학도, 성춘향]

System.out.println("삭제 없이 꺼내온 값 : " + queue.peek());
System.out.println("현재 queue값 : " + queue);
//삭제 없이 꺼내온 값 : 변학도
//현재 queue값 : [변학도, 성춘향]
profile
Hello, world!
post-custom-banner

0개의 댓글