728x90 자료구조9 [자료구조] Graph 정의 노드와 그 노드를 연결하는 간선을 하나로 모아 놓은 자료구조입니다. 노드는 보통 vertex로 v, 간선은 보통 edge로 e를 많이 사용합니다. 특징 방향 그래프와 무방향 그래프 모두 존재합니다. 사이클 가능, 자체 간선도 가능, 순환 그래프, 비순환 그래프 모두 존재합니다. 딱히 루트 노드의 개념은 없습니다. 물론 부모-자식 개념도 희미합니다. 순회는 DFS,BFS를 사용합니다. 그래프는 네트워크 모델입니다. 인접 리스트 혹은 인접 행렬로 구현합니다. 2021. 10. 27. [자료구조] 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. 이전 1 2 3 다음 728x90