목록자료구조 (16)
고코딩
앞서 포스팅한 스택과 큐는 자료구조에서 선형 구조라고 한다. 선형 구조는 데이터가 순차적으로 나열되어진 형태를 말하는데, 트리는 비선형구조로 이루어져있다. 비선형구조는 데이터가 계층적(혹은 망)으로 구성되어있다. 선형구조와 비선형구조의 차이점은 구성형태뿐만 아니라 용도에서도 차이점이 들어나느데, 선형구조는 자료를 저장하고 꺼내는 것에 초점이 맞춰져 있고, 비선형구조는 표현에 초점이 맞춰져 있다. 보통 컴퓨터의 폴더 구조가 대표적인 트리의 형태를 가지고 있다. 트리(Tree)의 개념 계층적인 자료를 표현하는데 적합한 자료구조 이다. 노드(node)와 간선(edge)"브랜치(Branch)라고도 불린다" 로 구성되어 있다. 제일 최상위에 위치한 노드를 루트노드(Root Node)라 부르고 나머지 노드들을 서브..
Queue Queue는 자료구조의 스택과 반대의 구조라고 생각하면 된다. 큐는 FIFO(First In First Out)의 형태를 가지게 됩니다. 가장 먼저 들어온 데이터가 가장 먼저 나가는 구조를 말한다. Enqueue : 큐 맨 뒤에 데이터를 추가 Dequeue : 큐 맨 앞쪽의 데이터를 삭제 특징 큐의 한쪽 끝은 Front로 정하여 삭제연산만 수행한다. 다른 한쪽 끝은 Rear로 정하여 삽입연삼나 수행한다. 그래프 넓이 우선 탐색(BFS)에서 사용된다. 컴퓨터 버퍼에서 주로 사용, 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킨다. 먼저 들어온 입력먼저 처리 Java로 큐를 구현 먼저 자바에서 제공해주는 Queue클래스를 이용해 Queue를 구현해보자. 자바에서는 스택을..
스택은 사전적인 의미로 "쌓다"라는 의미를 가지고 있습니다. 스택을 흔히 선출후입(LIFO)라고 부릅니다. 한쪽에서만 자료를 넣고 뺄수 있는 구조입니다. 실제로 인터넷 브라우적의 경우 '뒤로가기','앞으로가기' 버튼을 생각하시면 됩니다. JAVA에서 제공해주는 Stack클래스 자바에서는 기본적으로 Stack클래스를 지원해줍니다. 물론 우리가 만들줄도 알아야 하지만 기왕에 주어진 기능 먼저 활용해 봅시다. Stack stack = new Stack(); 와 같이 생성할 수 있다. 기본적으로 push(), pop(), peek(), empty(), search()기능을 지원해 주는데 예제 코드를 사용해 각각이 어떤 기능인지 알아보자. 참고로 는 Stack 배열안에 들어가 데이터의..
자료 구조는 현실세계에 존재하는 데이터를 효율적으로 저장할 수 있는 구조화 표현의 개념이라고 할 수 있다. 그럼 왜 자료 구조를 알아야 하는것일까? 컴퓨터에는 메모리,CPU, 스토리지가 존재하는데 데이터가 중구난방으로 존재하게 되면 CPU가 메모리나 스토리지에 저장되어있는 데이터를 찾는데 오랜시간이 소비되게 된다. 이 말은 즉, 프로그램의 속도를 저하시키게 된다. 데이터가 자료구조의 개념에 기반하여 저장되어있다면 CPU가 자료를 찾는데 드는 시간은 짧아지고 효율적이 사용이 될 것이다. 자료 구조의 분류는 단순구조, 선형구조, 비선형구조, 파일구조로 나뉘어져 있다. 단순 구조 프로그래밍시 변수도 크기가 커지면 여러공간에 변수를 나눠서 저장하게 된다. 변수의 데이터 타입에 따라 구조도 바뀌게 된다 선형 구조..