Algorithmic Wisdom 🧠/Data Structure5 [자료구조][스택] - 연결 리스트 스택 연결 리스트 스택 구조스택의 최상단은 연결 리스트의 첫 번째 노드삽입 / 삭제 연산은 스택의 최상단에서 이루어짐연결 리스트 스택 장점배열과 다르게 동적이므로효율적인 메모리 사용 가능연결 리스트 스택 단점데이터 이외에 다음 노드를 위한포인터를 위한 메모리가 추가 필요하므로작은 데이터셋에서는 오버헤드 발생 우려연결 리스트 스택 구현 (Java)class Node { int data; Node next; public Node(int data) { this.data = data; this.next = null; }}class LinkedListStack { private Node top; public LinkedListStack(.. 2024. 3. 21. [자료구조][스택] - 재귀 스택 재귀 함수란?자신을 다시 호출하는 함수재귀 함수 예시 int factorial(int n) { if (n == 1) { // 종료 조건 return 1; } return n * factorial(n - 1); // 재귀 호출 } System.out.println(factorial(5)); // 5 * 4 * 3 * 2 * 1 = 120 재귀 함수는 매번 자기 자신을 호출할 때마다현재 함수의 상태가 스택에 저장됨 하지만 재귀 호출이 너무 깊어지면Stack Overflow 가 발생할 수도 있음 해당 문제를 해결하기 위해재귀를 명시적 스택을 사용하여반복문으로 대체할 수 있다명시적 재귀 스택 예시 int factor.. 2024. 3. 17. [자료구조][스택] - 모노톤(단조) 스택 모노톤 스택이란?스택에 데이터를 삽입할 때데이터가 단조 증가 / 감소하는 스택 모노톤 스택 예시 (Java) public int[] nextGreaterElement(int[] nums) { int[] result = new int[nums.length]; // 결과 저장 배열 Stack stack = new Stack(); // 스택 선언 for (int i = nums.length - 1; i >= 0; i--) { // 역순으로 순회 while (!stack.isEmpty() && stack.peek() 2024. 2. 22. [자료구조][스택] - 스택 스택이란?마지막에 삽입된 데이터가 가장 먼저 제거되는LIFO(Last In, First Out) 원칙을 따르는 자료구조 스택의 사용 방법 스택의 장점 스택의 단점 스택의 예시 (java) Stack stack = new Stack(); // 스택 생성 // Push: 스택에 요소 추가 stack.push(10); // 스택: [10] stack.push(20); // 스택: [10, 20] stack.push(30); // 스택: [10, 20, 30] // Peek: 스택의 맨 위 요소 확인 (제거하지 않음) System.out.println("Top element: " + stack.peek()); // 30 .. 2024. 2. 20. [자료구조][큐] - 큐 큐(Queue)란?먼저 삽입된 데이터가 가장 먼저 제거되는FIFO(First In, First Out) 원칙을 따르는 자료구조 하나의 끝에서 데이터를 삽입(Enqueue)하고반대쪽 끝에서 데이터를 제거(Dequeue)한다스택의 사용 방법큐의 장점큐의 단점 큐의 예시 (java) // Queue 생성 (LinkedList로 구현) Queue queue = new LinkedList(); // 요소 추가 (enqueue) queue.offer(1); queue.offer(2); queue.offer(3); System.out.println(queue); // [1, 2, 3] .. 2023. 12. 7. 이전 1 다음 728x90 반응형