전체 글332 fopen => fopen_s VS2017 버젼에서는 보안결함이 있는 함수들을 사용할 경우에 오류를 반환한다.(C4996) fopen FILE *fopen(const char *filename, const char *mode) FILE *pf = fopen("test.txt", "r"); fopen_s errno_t fopen_s(file **_stream, const char*_filename, const char*_mode) FILE *pf = NULL; errno_t err = fopen_s(&pf, "test.txt", "r"); 2019. 9. 4. 그래프 요소들이 서로 복잡하게 연결되어 있는 관계를 표현하는 자료구조. 정점(vertex)과 간선(edge)들의 집합으로 구성. 인접 정점(adjacent vertex) ;간선에 의해 직접 연결된 정점. 정점의 차수(degree) ;정점에 연결된 간선의 수. 경로(path) ;간선을 따라 갈 수 있는 길. 정점의 나열로 표시. 경로의 길이 ;경로를 구성하는데 사용된 간선의 수. 단순 경로(simple path) ;경로 중에서 반복되는 간선이 없는 경로. 사이클(cycle) ;단순 경로의 시작 정점과 종료 정점이 같은 경로. 연결 그래프(connected graph) ;그래프의 모든 정점들 사이에 경로가 존재하는 것. 트리(Tree) ;그래프의 특수한 형태. 사이클을 가지지 않는 연결 그래프. 완전 그래프(com.. 2019. 9. 4. 우선순위 큐(STL 힙 정렬) #include #include // STL 우선순위 큐를 이용한 내림차순 정렬. 최대 힙void heapSortDec(int arr[], int n){ priority_queue maxHeap; for (int i = 0; i 2019. 9. 3. 우선순위 큐(힙) 부모 노드의 키 값이 자식 노드의 키 값보다 큰 이진 트리. 최대 힙(max heap) ; 부모 노드의 키 값이 자식 노드의 키값보다 크거나 같은 완전 이진트리 key(부모 노드) >= key(자식 노드) 최소 힙(min heap) ; 부모 노드의 키 값이 자식 노드의 키값보다 작거나 같은 완전 이진트리 key(부모 노드) getParent(i).getKey()) // 루트가 아니고 부모노드보다 키값이 크면 { node[i] = getParent(i); // 부모를 자신노드로 끌어내림 i /= 2; // 한 레벨 위로 상승 } node[i].setKey(key); // 최종 위치에 데이터 복사 } // 힙의 루트 노드를 반환하고 힙을 재구성 HeapNode remove() { if (isEmpty()) .. 2019. 9. 3. 이진 탐색 트리 모든 노드는 유일한 키를 갖는다. 왼쪽 서브트리의 키들은 루트의 키보다 작다. 오른쪽 서브트리의 키들은 루트의 키보다 크다. 왼쪽과 오른쪽 서브트리도 이진 탐색 트리이다. #include "BinaryTree.h" class BinSrchTree : public BinaryTree { public: BinSrchTree(void) {} ~BinSrchTree(void) {} // 이진 탐색 트리의 탐색 연산 BinaryNode* search(int key) { BinaryNode* node = searchRecur(root, key); if (node != NULL) printf("탐색 성공: 키값이 %d인 노드 있음\n", node->getData()); else printf("탐색 실패: 키값이 %d.. 2019. 9. 3. 스레드 이진트리 노드의 개수가 n 이면 전체 링크의 수는 2n. 루트를 제외한 n-1 개의 노드가 부모와 연결됨(간선). 2n 중에 n-1 개를 제외한 n+1 개의 링크가 항상 NULL. n+1개의 NULL 링크에 중위 순회 시에 선행 노드인 중위선행자(inorder predecessor)나 중위 순회 시에 후속 노드인 중위 후속자(inorder successor)를 저장시켜 놓은 트리 class ThreadBinNode{private: int data; ThreadBinNode* left; ThreadBinNode* right;public: bool bThread; public: ThreadBinNode(int value, ThreadBinNode* l, ThreadBinNode* r, bool bTh) : data(.. 2019. 8. 29. 이전 1 ··· 49 50 51 52 53 54 55 56 다음