Programming 썸네일형 리스트형 Node.h : 인접 리스트를 이용한 그래프를 위한 노드 클래스 #pragma once#ifndef ___Node_Adj#define ___Node_Adj//Node.h : 인접 리스트를 이용한 그래프를 위한 노드 클래스#include class Node {protected:int id;//정점의 idNode* link;//다음 노드의 포인터public:Node(int i, Node* l=NULL) : id(i), link(l){}~Node() { if (link != NULL) delete link; }int getId() { return id; }Node* getLink() { return link; }void setLink(Node* l) { link = l; }}; #endif // !___Node_Adj 더보기 AdjMatGraph.h : 인접 행렬을 위한 그래프 클래스 #pragma once#ifndef ___AdjMatGraph#define ___AdjMatGraph//AdjMatGraph.h : 인접 행렬을 위한 그래프 클래스#include #define MAX_VTXS 256//표현 가능한 최대 정점의 개수 class AdjMatGrapgh {protected:int size;//정점의 개수char vertices[MAX_VTXS];//정점의 이름int adj[MAX_VTXS][MAX_VTXS];//인접 행렬public:AdjMatGrapgh() { reset(); }char getVertex(int i) { return vertices[i]; }int getEdge(int i, int j) { return adj[i][j]; }void setEdge(int i,.. 더보기 MaxHeap.h : 배열을 이용한 최대 힙 클래스 #pragma once#ifndef ___MaxHeap#define ___MazHeap//MaxHeap.h : 배열을 이용한 최대 힙 클래스#include "HeapNode.h"#define MAX_ELEMENT 200class MaxHeap {HeapNode node[MAX_ELEMENT];//요소의 배열int size;//힙의 현재 요소의 개수public:MaxHeap() : size(0) {}bool isEmpty() { return size == 0; }bool isFull() { return size == MAX_ELEMENT - 1; } HeapNode& getParent(int i) { return node[i / 2]; }HeapNode& getLeft(int i) { return node.. 더보기 HeapNode : 힙에 저장할 노드 클래스 #pragma once#ifndef ___HeapNode#define ___HeapNode//HeapNode : 힙에 저장할 노드 클래스#include class HeapNode {int key;//key값public:HeapNode(int k = 0) : key(k) {}void setKey(int k) { key = k; }int getKey() { return key; }void display() { printf("%4d", key); }};#endif // !___HeapNode 더보기 DataStructure - 힙(heap) 힙 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰 이진트리를 말한다.힙(heap)은 완전 이진트리의 일종으로 우선순위 큐를 위해 만들어진 자료구조이다. 힙은 일종의 반 정렬 상태를 유지한다. 즉, 요소들이 완전히 정렬된 것은 아니지만 전혀 정렬되지 않은 것도 아닌 상태를 이용해 우선순위 큐를 구현한다. 힙의 시간 복잡도는 삽입과 삭제 모두 으로 다른 방법보다 상당히 유리하다. 여기서 다시 한 번 과 은 큰 차이가 있다는 것을 유념해야 한다. 만약 n 이 1024이고 알고리즘이 1024초가 걸린다면 알고리즘은 10초에 불과하다.표현 방법 삽입 삭제 순서 없는 배열 순서 없는 연결 리스트 정렬된 배열 정렬된 열결 리스트 힙 더보기 BinSrchTree_Dictionary.h : 사전 클래스를 위한 이진 탐색 트리 클래스 #오류가 있음 #ifndef ___BinSrchTree_Dictionary#define ___BinSrchTree_Dictionary//BinSrchTree_Dictionary.h : 사전 클래스를 위한 이진 탐색 트리 클래스#include "BinaryTree_Dictionary.h" class BinSrchTree : public BinaryTree {public:BinSrchTree(void) {}~BinSrchTree(void) {} //이진 탐색 트리의 탐색 연산BinaryNode* search(const char* key) { return searchRecur(root, key); }//키 값으로 노드를 탐색하는 함수 (순환적인 방법)//n을 루트로 갖는 서브트리에서 key를 키값으로 갖는 노드 탐색 함수B.. 더보기 BinaryTree_Dictionary.h :사전 클래스를 위한 이진 트리 클래스 #pragma once#ifndef ___BinaryTree_Dictionary#define ___BinaryTree_Dictionary#include "BinaryNode_Dictionary.h"//BinaryTree_Dictionary.h :사전 클래스를 위한 이진 트리 클래스class BinaryTree {protected:BinaryNode* root;public:BinaryTree() : root(NULL) {}bool isEmpty() { return root = NULL; }void inorder(BinaryNode* node) {if (node != NULL) {if (node->getLeft() != NULL) inorder(node->getLeft());node->display();if.. 더보기 BinaryNode_Dictionary.h : 사전 클래스를 위한 노드 클래스 #pragma once#ifndef ___BinaryNode_Dictionary#define ___BinaryNode_Dictionary//BinaryNode_Dictionary.h : 사전 클래스를 위한 노드 클래스#include #include "Record.h" class BinaryNode : public Record{protected:BinaryNode* left;//왼쪽 자식 노드의 포인터BinaryNode* right;//오른쪽 자식 노드의 포인터public:BinaryNode(const char* w = "", const char* m=""): Record(w,m), left(NULL), right(NULL) {}void setLeft(BinaryNode* l) { left = l; }vo.. 더보기 이전 1 ··· 14 15 16 17 18 19 20 ··· 38 다음