자료구조 3

우선순위 큐

우선순위 큐란 우선순위가 높은 데이터대로 먼저 나가는 자료구조이다. 우선순위 큐에 중요한 연산은 총 2가지가 있는데 , 첫번째는 insert(삽입연산), 두번째는 delete(삭제연산) 이다 우선순위 큐는 2가지로 구분이 되는데 최소 우선순위 큐는 가장 우선 순위가 낮은 요소를 먼저 삭제한다. 최대 우선 순위 큐는 가장 우선순위가 높은 요소가 먼저 삭제된다. 우선순위 큐의 구현방법 표현 방법 삽입 삭제 순서 없는 배열 O(1) {배열 맨끝에 새로운요소를 추가} O(n) {처음부터 끝까지 모든 요소를 스캔} 정렬된 배열 O(n) {다른 요소의 값을 비교후 삽입} O(1) {숫자가 높은것이 우선순위가 높다고 가정하면 맨 뒤에 위치한 요소 삭제} 순서 없는 연결리스트 O(1) {첫번째 노드로 삽입} O(n) ..

자료구조 <트리>

트리란? 계층적인 구조인 트리는 가족의가계도, 회사의 조직도, 컴퓨터의 디렉토리 구조, 인공지능 문제에서도 사용됩니다. 대표적인 것이 결정트리 트리의 용어들 루트(root) : 계층적인 구조에서 가장 높은 곳에 있는 노드 : (A) 서브트리(subtree) : 루트노드를 제외한 나머지 노드들 : { (B,D,E,H,I,J) , (C,F,G) } 간선(edge) : 트리에서 루트와 서브트리는 선으로 연결됩니다. : 10개 (공식::노드의 개수-1) 부모노드(parent node) : 데이터 구조의 트리에서 모든 노드의 선행 노드인 노드를 부모 노드라고 하거나 자신에서 다른 연속 노드로 분기하는 노드를 부모 노드라고 합니다. : (A),(B),(C),(D),(E),(F),(G) 자식노드(children no..

자료구조 <스택, 응용:괄호검사, 후위표기수식계산>

스택 기본구성 #include #include using namespace std; template class stack { int top; T* array; public: stack() { top = -1;} ~stack() { delete[]array; } void create(int size) { array = new T[size]; } void push(T element) { array[++top]=element; } T pop() { T res; res = array[top]; top--; return res; } T peak() { return array[top]; } int _size() { return top + !; } bool is_empty() { if (top == -1)return..