본문 바로가기

자료구조

[알고리즘] 2.1. 자료구조 : 연결리스트 기반 스택(Stack) 구현 개요 스택이 무엇인지, 어디에 사용하고 무엇으로 만드는지에 대한 전체적인 내용은 이전 게시물을 참고하시면 됩니다. 스택 이해하기 연결리스트 기반 스택의 프로퍼티(속성) 으로는 top(데이터 삽입/삭제하는 위치), Node(스택을 구성하는 요소)로 구성되어 있습니다. 메쏘드(함수)로는 pop(삭제), push(삽입), peek(탐색)이 있고, 부수적인 함수로는 isEmpty(스택이 비어있는지 확인)가 있습니다. 구현 //연결 리스트로 사용 할 노드 class public class Node { private Object data; private Node nextNode; public Node(Object data){ this.data = data; this.nextNode = null; } //해당 노드를.. 더보기
[알고리즘] 2.1. 자료구조 : 배열 기반 스택(Stack) 구현 개요 스택이 무엇인지, 어디에 사용하고 무엇으로 만드는지에 대한 전체적인 내용은 이전 게시물을 참고하시면 됩니다.배열 기반 스택의 프로퍼티(속성) 으로는 top(데이터 삽입/삭제하는 위치), maxSize(배열의 최대크기), stackArray(배열)으로 구성되어 있습니다. 메쏘드(함수)로는 pop(삭제), push(삽입), peek(탐색)이 있고, 부수적인 함수로는 isEmpty(스택이 비어있는지 확인)가 있습니다. 배열을 이용한 스택 구현public class ArrStack {private int top; //마지막 위치 (삽입,삭제가 이루어질 위치)private int maxSize;private Object[] stackArray;//생성자 : 프로퍼티 초기public ArrStack(int s.. 더보기
[알고리즘] 2.2.자료구조 : 큐(Queue) 이해하기 개요 큐의 구조는 스택과 다르게 '선입선출'의 구조를 가지고 있습니다. 스택은 막힌 박스와 같아 먼저 들어온 것이 가장 나중에 나가는 구조지만, 큐는 먼저 들어온 것이 먼저 나가는 구조입니다. 좋은 예로 은행에 있는 번호표가 있습니다. 은행에 방문하여 기다리는데, 저보다 늦게 온 다른 분이 먼저 업무를 본다면 기분이 나쁘겠죠? 이러한 상황을 만들지 않기 위해 은행에서는 번호표를 나눠줍니다. 먼저 온 손님은 늦게 온 손님보다 먼저 서비스를 받게 하기 위해서죠. 이러한 은행의 번호표의 체계가 큐(Queue)입니다. 은행의 번호표를 다시 한번 생각해보죠. 제가 619번의 번호표를 뽑았다고 가정하여 봅시다. 지금은 618번 까지 서비스를 받고 있는 상태이고요. 그러면 번호표 시스템 내부에서는 다음 서비스를 받을.. 더보기
[알고리즘] 2.1. 자료구조 : 스택(Stack) 이해하기 개요stack대학교기본어단어장1.쌓다2.스택3.한 무더기4.더미 스택이란 자료구조는 사전적 정의인 '쌓다' '더미' 와 같습니다. 쉽게 설명하자면, 밑이 막힌 상자를 생각하시면 됩니다. 밑이 막혔으니 위로만 물건을 집어 넣을 수 있고, 뺄 수가 있겠죠? 이러한 구조 때문에 먼저 들어온 물건은 나중에 나갈 수 있고, 나중에 들어온 물건은 먼저 나갈 수 있게 됩니다. 이러한 구조를 '선입후출' '후입선출' 이라고 합니다. 자료구조를 공부하는 데 있어 코드로 구현하는 것도 중요하지만, 그보다 중요한 것은 자료구조를 어떻게 사용할지 아는 것이 더 중요합니다. 모든 자료구조는 [삽입],[삭제],[읽기]를 기본으로 가집니다. 따라서 앞으로 자료구조의 사용법은 이 세가지 위주로 알아보겠습니다. 스택 용도 및 예제 스.. 더보기