본문 바로가기

프로그래밍 언어/자료구조5

5.큐(Queue) 구현 Queue의 특징 - 맨 앞(front)에서 자료를 꺼내거나 삭제하고, 맨 뒤(rear)에서 자료를 추가 함 - First In First Out (선입선출) 구조 - 일상 생활에서 일렬로 줄 서 있는 모양 - 순차적으로 입력된 자료를 순서대로 처리하는데 많이 사용되는 자료구조 - 콜센터에 들어온 문의 전화, 메세지 큐 등에 활용됨 - jdk 클래스 : ArrayList LinkedList를 이용한 Queue 구현 - MyListQueue.java interface Queue{ public void enQueue(String data); public String deQueue(); public void printAll(); } public class MyLinkedQueue extends MyLinked.. 2022. 5. 27.
4.스택(Stack) 구현 Stack의 특징 - 맨 마지막 위치(top)에서만 자료를 추가, 삭제, 꺼내올 수 있음(중간의 자료를 꺼낼 수 없음) - Last In First Out (후입선출) 구조 - 택배 상자가 쌓여있는 모양 - 가장 최근의 자료를 찾아오거나 게임에서 히스토리를 유지하고 이를 무를때 사용할 수 있음 - 함수의 메모리는 호출 순서에 따른 stack 구조 - jdk 클래스 : Stack 배열을 활용한 stack 구현 - MyArrayStack.java public class MyArrayStack { MyArray arrayStack; int top; public MyArrayStack() { top = 0; arrayStack = new MyArray(); } public MyArrayStack(int size.. 2022. 5. 27.
3.연결 리스트(LinkedList)구현 LinkedList 특징 - 동일한 데이터 타입을 순서에 따라 관리하는 자료구조 - 자료를 저장하는 노드에는 자료와 다음 요소를 가리키는 링크(포인터)가 있음 - 자료가 추가 될때 노드만큼의 메모리를 할당받고 이전 노드의 링크로 연결함(정해진 크기가 없음) - 연결리스트의 i번째 요소를 찾는게 걸리는 시간은 요소의 개수에 비례 : O(n) - jdk 클래스 : LinkedList LinkedList 구현 - MyListNode.java public class MyListNode { private String data; // 자료 public MyListNode next; // 다음 노드를 가리키는 링크 public MyListNode() { data = null; next = null; } public .. 2022. 5. 27.
2.배열(Array) 구현 Array의 특징 - 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조 - 정해진 크기가 있음 - 요소의 추가와 제거시 다른 요소들의 이동이 필요함 - 배열의 i번째 요소를 찾는 인덱스 연산이 빠름 - jdk클래스 : ArrayList, Vector Array 구현 - MyArray.java public class MyArray { int[] intArr; int count; public int ARRAY_SIZE; public static final int ERROR_NUM = -9999999; public MyArray() { count = 0; ARRAY_SIZE = 10; intArr = new int[ARRAY_SIZE]; } public MyArray(int size) { count = 0.. 2022. 5. 27.