본문 바로가기
  • soobinhand의 기술 블로그
728x90

Computer Science/자료구조8

[자료구조] Undirected Graph - 2차원 배열 Undirected Graph - 2차원 배열 그래프라 하면 꼭지점(vertex)와 간선(edge)가 존재합니다. 가중치가 있을 수도 있고, 또는 방향성이 존재할 수도 있습니다. 하지만 그 둘다 없는 방향성도 가중치도 없는 그래프를 2차원 배열로 만들어보고자 합니다. 만약 그래프가 이렇다면, 마치 직사각형 같다고 생각해봅시다. 여기서 꼭지점은 1, 2, 3, 4 이고 간선은 1-2, 2-4, 3-4, 1-3입니다. 결국 꼭지점의 갯수는 4개이고 간선의 갯수도 4개입니다. 이걸 코드로 표현한다면 아래와 같습니다. public static void main(String[] args){ Scanner sc = new Scanner(System.in); int vertex = 4; // 꼭지점 int edge .. 2021. 10. 27.
[자료구조] Linked List 정의 연결 리스트는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 자료구조입니다. 홈파티나 생일파티를 가면 뒤에 저런 배경을 해놓고 사진을 찍는 경우가 많습니다. 보통 벽에다가 걸어놓습니다. 저게 바로 링크드 리스트 즉 연결리스트입니다. '생'이라는 데이터를 담고 있는 종이는 '일'이라는 데이터를 가리키고 있습니다. 즉 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노드와 다음 노드와의 연결을 담당합니다. 특징 연결리스트는 중간에 데이터를 추가하거나 삭제하더라도 전체의 인덱스가 한 칸씩 뒤로 밀리거나 당겨지지 않습니다. 그래서 array보다 데이터의 추가나 삭제가 용이합니다. '일'을 없앤다면 '생'과 '축'이 연결되는 형식입니다. 하지만 인덱스가 없기때문에 특정 요소에 .. 2021. 10. 26.
[자료구조] Array 정의 연관된 데이터를 하나의 변수에 그룹화해서 순차적으로 관리하는 자료구조입니다. 배열을 이용하면 하나의 변수에 여러 정보를 담을 수 있습니다. 특징 배열의 길이는 고정되어 있습니다. 연속된 자료구조입니다. 배열에 저장되는 값은 모두 같은 데이터의 유형이어야 합니다. 배열의 값을 요소, 순서를 인덱스라고 합니다. 선언 및 생성 int[] arr = new int[10]; String[] strarr = new String[10]; char[] chararr = new char[10]; 배열의 길이 : 10 배열의 인덱스 : 0 ~ 9 모든 배열의 첫 번째 인덱스는 0입니다. 각각의 배열엔 해당 데이터 타입만 들어갈 수 있습니다. 값을 집어 넣어 봅시다. 예제 for(int i = 0; i < arr.le.. 2021. 10. 25.
[자료구조] 2차원 배열을 1차원 배열로 만드는 방법 흠 생각해봅시다. public class Main { public static void main(String[] args) throws Exception { ArrayList arrayList = new ArrayList(); int[][] a = { {1,2,3}, {10,9,4} }; int[] b = new int[a.length*a[0].length];//2 * 3 for(int i =0; i 2021. 10. 19.
728x90