자료구조 3

LinkedList 구조

■ LinkedList Linked List는 각 노드(객체)의 데이터와 포인터를 가지고 있는데 데이터를 담고 있는 노드들이 연결되어있고, 노드의 포인터가 이전 노드의 주소와 다음 노드의 주소를 참조함으로서 구성된다. ArrayList에 비해서 데이터의 추가 삭제는 용이하나 탐색이 필요한 경우에는 속도가 떨어지는 단점이 있다. ● LinkedList의 종류 종류에 따라 next만 쓰는 경우 prev와 함께 쓰는 경우 등 다르게 사용된다. public class Node { Node next; // 다음 노드 주소를 저장하는 필드 Node prev; // 이전 노드 주소를 저장하는 필드 int data; // 데이터를 저장하는 필드 } singly linked list 다음 노드를 가리키기 위한 포인터 필..

자료구조 2023.11.12

ArrayList 구조

■ ArrayList ArrayList는 List 인터페이스를 구현한 구체적인 클래스 중 하나로서 크기가 가변적으로 변하는 선형리스트이다. 기존의 배열으로는 자료를 담고 관리하는데 불편한점이 있어 나온 것이 ArrayList이다. ● 특징 연속적인 데이터의 리스트 ArrayList 클래스는 내부적으로 Object 배열을 이용하여 요소를 저장한다 배열을 이용하기 때문에 인덱스를 이용해 요소에 빠르게 접근 할 수 있다 배열은 크기가 고정되어 있어 불편함이 있지만 ArrayList는 데이터 적재량에 따라 가변적으로 공간을 늘리거나 줄일 수 있어 동적 할당에 해당된다 데이터를 리스트 중간에 삽입&삭제 할 경우 , 중간에 빈 공간이 발생하지 않도록 요소의 위치를 앞뒤로 자동으로 이동시키므로 삽입&삭제의 동작은 느..

자료구조 2023.11.01

스택 (Stack)

■ Stack 이란 스택(stack)의 사전적 정의는 '쌓다', '더미'로서 데이터를 쌓는 자료 구조라고 할 수 있다 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 구조 특징을 가지고 있는데 이러한 구조를 LIFO(Last In First Out) 구조라고 말한다 직전의 데이터를 빠르게 가져올 수 있는 장점이 있어 뒤로가기, 실행취소 , 컴퓨터 구조의 스택 메모리가 대표적이다 ● Stack 사용법 메소드 설명 boolean empty() Stack이 비어있는지 알려준다 push() Stack에 객체를 저장한다 pop() Stack의 맨 마지막에 저장된 객체를 빼낸다 비어있는 경우 EmptyStackException 발생 peek() Stack의 맨 마지막에 저장된 객체를 반환 pop과 달리 삭제..

자료구조 2023.10.16