☁️정리/❄️자료구조 7

[자료구조] 트리 순회

❓ Tree 란empty이거나, empty가 아니면 루트 R과 트리의 집합으로 구성되는데 각 트리의 루트는 R의 자식 노드이다. 단, 트리의 집합은 공집합일 수도 있다.  ❓트리 순회 전위 순회 (Preorder Traversal)중위 순회 (Inorder Traversal)후위 순회 (Postorder Traversal)   ❓ 전위 순회 (Preorder Traversal) 노드 -> 왼쪽 자식 노드 -> 오른쪽 자식 노드 ❓ 중위 순회 (Inorder Traversal) 왼쪽 자식 노드 -> 노드 -> 오른쪽 자식 노드 ❓ 후위 순회 (Postorder Traversal) 왼쪽 자식 노드 -> 오른쪽 자식 노드 -> 노드

[자료구조] 해시 테이블

❓ 해시 테이블이란원소의 인덱스에 대한 사전 지식 없이 직접 접근을 제공하려고 시도하는 자료 구조"해시" = 원소들이 아무런 순서 없이 마구 뒤섞여 있다는 사실 반영정렬하지 않고서도 더 좋은 성능해시 함수를 가진 키 테이블  ❓ 테이블과 레코드레코드: 여러 개의 컴포넌트를 가진 복합적인 자료 구조: 외부 디스크 상에 데이터를 저장하기 위해 사용키 레코드: 키와 값이라는 이름을 가진 객체의 순서 쌍연산) 1. Initialize: 주어진 키와 주어진 값을 가지는 키 보유 레코드를 생성2. Key: 이 레코드의 키 객체를 리턴3. Value: 이 레코드의 값 객체를 리턴4. Update x: 이 레코드의 값 객체를 주어진 값 객체로 대체테이블: 동일 타입의 레코드의 집합키 테이블: 테이블에 저장된 레코드 전..

[자료구조] Queue

❓ Queue 란?선입 선출(FIFO) 프로토콜을 구현하는 자료 구조원소의 삽입은 큐의 뒤에서 수행, 원소의 제거는 앞에서 수행== 삽입과 삭제가 양 끝에서 각각 수행되는 자료구조  ❓ Queue 연산1) Add: 주어진 원소를 큐의 뒤에 삽입2) First: 큐가 공백이 아니면, 큐의 앞에 있는 원소 return3) Remove: 큐가 공백이 아니면, 큐의 앞에 있는 원소를 삭제해서 return4) Size: 큐에 있는 원소의 수 return  ❓ Queue구현배열 기반 구현linkedlist 기반 구현-> 구현이 더 빠름 (삽입과 삭제를 위한 위치가 항상 동일하게 뒤와 앞이기 때문)-> 공간을 낭비하지 않는다. (제거된 노드가 자동 쓰레기 수집 프로세서에 의해서 삭제되기 때문)= Queue by Si..

[자료구조] Stack

❓ Stack 이란?후입 선출(LIFO) 프로토콜을 구현하는 자료 구조접근 가능한 유일한 객체는 최근에 삽입된 객체== 한쪽 끝에서한 항목을 삭제하거나 새로운 항목을 저장하는 자료구조  ❓ Stack 연산1) Peek: 스택이 공백이 아니면, Top의 원소를 return2) Pop: 스택이 공백이 아니면, Top의 원소를 삭제해서 return3) Push: 주어진 원소를 스택의 Top에 추가4) Size: 스택에 있는 원소의 수 return  ❓ Stack 구현array를 기반 구현-> 스택의 원소를 저장하기 위해 배열 사용-> Size, Peek, Pop, Push 외에 isEmpty, resize 메소드 포함 => ArrayStack은 스택이 꽉 찼을 때 배열을 재구축해야 하므로 다소 비효율적link..

[자료구조] Array

❓ Array 란첨자 연산자를 이용해 접근할 수 있는 인접한 원소들의 시퀀스프로토타입 자료 구조  ❓ Java의 Array객체t [] 형태 (t는 배열 원소 타입)new 연산자를 이용해 메모리 할당 가능index: 0부터int[] a = new int [10]; //10개의 int 원소로 된 배열 할당 int num=a.length;System.out.println(num); // 출력: 10int[] a = {1,2,3}; // 배열 초기화   ❓ 다차원 Array배열의 배열int[][] a= {{11,12,13},{14,15,16},{17,18,19}};