2025/08 10

파이썬 자료구조(연결리스트)

이번 글은 저번에 알아보았던 자바자료구조(연결리스트)를 파이썬 버전으로 알아보자 이번 글은 파이썬과 자바에서의 차이를 중점으로 알아보자.연결 리스트(Linked List)는 파이썬과 자바 모두에서 구현할 수 있지만, 두 언어에서의 기본 제공 여부와 사용 방식에는 큰 차이가 있다. 자바에서는 LinkedList 클래스가 표준 라이브러리(java.util 패키지)에 포함되어 있어, 개발자가 직접 노드 구조를 구현하지 않아도 즉시 사용할 수 있다. 반면 파이썬 표준 라이브러리에는 연결 리스트 자료구조가 별도로 포함되어 있지 않으며, 필요할 경우 사용자가 직접 구현하거나 collections.deque와 같은 다른 자료구조를 활용해야 한다.자바의 LinkedList 클래스는 내부적으로 이중 연결 리스트(Doub..

Python 2025.08.15

자바 자료구조(3)

오늘은 여러 리스트의 종류중 연결리스트에 대하여 알아보았다.연결 리스트(Linked List)는 데이터를 선형적으로 저장하지만, 배열처럼 메모리상에서 연속적으로 배치되지 않는 자료구조다. 각 요소(Node)는 데이터와 다른 노드의 참조(포인터)를 함께 저장하며, 필요에 따라 동적으로 크기를 조절할 수 있다. 이러한 특성 덕분에 삽입과 삭제가 효율적이며, 크기 변화가 잦은 상황에 적합하다.연결 리스트의 기본 구성 단위는 노드(Node)다. 단일 연결 리스트(Singly Linked List)에서는 각 노드가 데이터와 다음 노드의 참조를 가지며, 마지막 노드는 null을 가리킨다. 이중 연결 리스트(Doubly Linked List)는 이전 노드 참조까지 저장해 양방향 탐색이 가능하다. 또한 원형 연결 리스..

자료구조 2025.08.15

파이썬 리스트

파이썬에서 리스트는 가장 많이 쓰이는 자료구조 중 하나입니다. 다른 언어의 배열과 비슷하지만, 크기를 자유롭게 변경할 수 있고 서로 다른 타입의 데이터도 한 리스트에 담을 수 있다는 점이 큰 장점입니다.fruits = ["apple", "banana", "cherry"]print(fruits[0]) # applefruits.append("orange") //마지막에 추가fruits.remove("banana") // 값으로 삭제리스트는 내부적으로 동적 배열(Dynamic Array) 구조를 사용합니다. 원소를 순차적으로 접근할 때 O(1) 속도를 보장하지만, 중간에 삽입하거나 삭제할 때는 O(n) 시간이 걸립니다.파이썬 리스트는 슬라이싱(Slicing) 문법을 지원합니다.numbers = [1, 2..

Python 2025.08.14

JAVA자료구조(2)

오늘은 자바 자료구조중 가장 기초적인 배열을 알아보자.배열은 가장 기본적이고 단순한 자료구조로, 같은 타입의 데이터를 연속된 메모리 공간에 저장합니다. 자바에서 배열은 한 번 크기를 지정하면 변경할 수 없는 고정 길이를 가지며, int[], String[]처럼 다양한 타입으로 만들 수 있습니다.배열의 주요 특징은 인덱스 기반 접근입니다. 첫 번째 원소는 인덱스 0, 마지막 원소는 length-1로 접근합니다.int[] numbers = {10, 20, 30};System.out.println(numbers[1]); // 20이런식으로 간단한 배열을 선언 할수있고, 인덱스를 통해 접근할 수 있다.단, 이러한 배열은 리스트와 다르게 정적인 크기를 가진다.배열의 장점은 접근 속도가 매우 빠르다는 것입니다. *..

자료구조 2025.08.14