본문 바로가기

Java/자료구조

(3)
3. 연결 리스트 개요순서를 가지고 원소(노드)를 정렬한 것을 리스트(List)라고 부릅니다.연결 리스트연결 리스트(Linked List)는 각 원소에 다음으로 가리킬 원소의 위치를 포함시킨 리스트를 의미합니다. 예를 들어, 학생을 학번대로 정렬하였을 때,3번 학생의 정보에 4번 학생의 정보에 대한 위치를 명시하는 것을 우리는 연결 리스트라고 할 수 있습니다. C에서는 연결 리스트를 주로 구조체(Struct)와 포인터(Pointer)를 통해 구현합니다.단순 연결 리스트단순 연결 리스트(Simply Linked List)는 각 노드가 앞에서 뒤로의 연결만을 가진 단방향성 연결 리스트입니다.각 노드는 후행 노드를 가리키므로, 앞에서 뒤로의 접근은 가능하지만, 반대 방향으로의 접근은 불가능합니다. Node 클래스단순 연결 리스..
2. 순환 개요순환(Recursion)이란,알고리즘이나 함수(메소드)가 자신을 호출하여 문제를 해결하는 프로그래밍 기법입니다.순환은 독특한 개념적인 프레임 워크를 제공하며, 자료구조를 다루는 프로그램에 적합합니다.재귀 함수재귀 함수(Recursion Function)은 자기 자신을 호출하는 함수입니다.재귀 함수는 자신을 반복적으로 호출함으로써, 원하는 결과를 도출해낼 수 있습니다. 그러나, 재귀 함수는 여러번 호출하기에 시간 복잡도가 크다는 단점이 있습니다.보통, 중복되는 계산을 줄이기 위해, 메모이제이션(memoization)을 이용합니다.메모이제이션은 한 번 계산한 결과를 메모리에 저장하였다가 꺼내서 중복 계산을 방지하는 방식입니다.거듭제곱 계산p의 n제곱을 구하는 방법은 p를 n번 곱하여 값을 반환하는 것입니..
1. 자료구조와 시간 복잡도 Java의 객체지향 프로그래밍 파트에 대한 이해가 요구됩니다. 개요자료구조(Data Structure)란,개발자가 데이터를 효율적으로 사용할 수 있도록 정리하는 방법을 의미합니다. 자료구조로는 배열, 리스트, 트리, 그래프 등이 있습니다.상황마다 효율이 다를 수 있으므로, 자료구조의 장단점을 파악하고상황에 맞는 최적의 자료구조를 사용할 수 있어야 합니다.추상 자료형추상 자료형(ADT: Abstract Data Type)란,자료들과 그 자료들에 대한 연산들을 명기한 것입니다. 구현 방법을 직접 명시하지 않으므로 자료구조와 차이를 보입니다.이는 자료형과 조작을 표현한 것이기 때문에, 데이터의 실제 표현과 구현이 정해지지 않은 것입니다.Java에서는 인터페이스(Interface) 또는 클래스(Class)로 구..