Java

    LinkedList 를 이용해서 Stack 구현

    public class Node{ //노드 클래스 public String data;//데이터필드 public Node link; public Node(String data){ super(); this.data = data; } public Node(String data, Node link){ this(data); this.link = link;} @override public String toString(){ return "Node [ data="+data+"link="+link+"]"; } public class Stack{ private Node top; //리스트의 시작점 private void push(String data){ Node newNode = new Node(data, top); to..

    재귀

    재귀 (Recurssion) 함수 내부에서 직접 혹은 간접적으로 자기 자신을 호출 Base Part : 재귀를 끝나는 조건을 지닌 파트 Inductive Par : 자기 자신을 호출하는 파트 재귀의 호출은 프로그램 메모리 구조에서 스택을 사용하기 때문에, 반복적인 호출은 메모리 및 속도의 성능 저하를 야기한다. 예제 팩토리얼 int factorial(int n){ if (n==1 || 0) return 1; else return n*factorial(n-1); } Permutation public class PermutationTest { static int N =3, R =4; static int[] numbers; static int[] input; static boolean[] isSelected;..

    1차원 배열

    일정한 자료형의 변수들을 하나의 이름으로 열거하여 사용하는 자료 구조 → 변수로 하기 힘든 작업을 배열을 통해 쉽게 해결할수 있음 배열 기본 문법 int[] arr = new int[4]; //자료형 배열 이름 = new 자료형[배열의 길이]; int[] arr2= new int[]{1,2,3,4}; int[] arr3; arr3 = new int[4]; //접근: arr[0] = 10; 배열 연습문제 : https://swexpertacademy.com/main/identity/anonymous/loginPage.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com

    Tree

    Tree

    트리 트리는 비선형 자료 구조로 원소들 간에 1: n 의 관계를 가진다 원소들 간에 계층 관계를 가지는 계층형 자료로, 상위 원소에서 하위 원소로 내려가면서 확당되는 트리(나무) 모양의 구조로 이루어진 유한 집합 노드 트리의 원소 트리는 한개 이상의 노드로 이루어진 유한 집합이며 다음 조건을 만족한다 노드 중 최상위 노드를 root 라고 한다 나머지 노드들은 n(≥0) 개의 분리집합으로 T1,...TN으로 분리될 수 있다. 이 T1,,,TN은 각각 하나의 트리가 되며(재귀적 정의) 루트의 부 트리(subtree) 라고 한다 용어정리 형제 노드 : 같은 부모 노드의 자식 노드들 조상 노드: 간선을 따라 루트 노드까지 이르는 경로이 있는 모든 노드들 서브트리: 부모 노드와 연결된 간선을 끊었을 때 생기는 트..

    List

    List

    리스트 순서를 가진 데이터 집합을 가리키는 추상자료형 (abstract data type) 으로, 동일한 데이터를 가지고 있어도 상관 없다. 리스트는 크게 두가지로 나뉘는데, 순차 리스트와 연결 리스트가 있다. 🤦🏻‍♀️ 순차 리스트 : 배열을 기반으로 구현된 리스트 연결 리스트 : 메모리의 동적할당을 기반으로 구현된 리스트 구현 방법 1차원 배열에 항복들을 순서대로 저장한다 데이터의 종류와 구조에 따라 구조화된 자료구조를 만들어 배열에 저장할 수도 있다 int [] L = {4,5,9,11 }; 데이터 접근 방법 배열의 인덱스를 이용해 원하는 위치의 데이터에 접근할 수 있다 int a = L [1]; //L =5 삽입 연산 삽입 위치 다음의 항목들을 뒤로 이동해야 한다 삭제 연산 삭제 위치 다음 항목들..

    QUEUE

    특성 스택과 마찬가지로 삽입과 삭제의 위치가 제한적인 자료구조 선입 선출 구조 (First In First Out) 큐에 삽입한 순서대로 원소가 저장되며, 가장 먼저 삽입된 원소가 가장 먼저 삭제됨 기본 연산 : enQueue, deQueue 주요 메서드: offer(), poll(), isEmpty(), size(), peek() 주로 LinkedList 클래스를 Queue 인터페이스의 구현체로 많이 사용한다 🤦🏻‍♀️ 큐 안에 아무것도 없을 떄, 스택과 마찬가지로 poll() : 삭제 - 를 불렀을 때, 예외 발생 처리가 없다 remove() : 삭제 - 를 불렀을 때, 예외가 발생한다 예시 import jvava.util.Queue; import java.util.LinkedList; public ..