C++
-
자료구조: Array Hash Table 구현하기 (feat. c++)알고리즘/자료구조 2021. 5. 8. 21:01
Characteristic: - HashTable class is a array table class with hash function Operations: - insert - lookup - deletKey - dump #include #include using namespace std; const int MAX_TABLE = 11; template class HashTable { public: HashTable(); void insert(const tableKeyType& key, const tableDataType& data); bool lookup(const tableKeyType& key, tableDataType& data); void deleteKey(const tableKeyType& ke..
-
자료구조: Dummy Inorder Linked List 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 16. 17:29
Characteristic: - MyList class is a Inorder(ascending order) Linked List class with dummy head Operations: - insert - first - next - remove #include #include using namespace std; typedef char ListElementType; class MyList { public: MyList(); void insert(const ListElementType& elem); bool first(ListElementType& elem); bool next(ListElementType& elem); void remove(const ListElementType& target); p..
-
자료구조: Inorder Linked List 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 16. 16:39
Characteristic: - MyList class is Inorder Linked List class, which is when you insert value, it is sorted in asending order. Operations: - insert - first - next #include #include using namespace std; typedef char ListElementType; class MyList { public: MyList(); void insert(const ListElementType& elem); bool first(ListElementType& elem); bool next(ListElementType& elem); private: struct Node; ty..
-
자료구조: Linked List 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 16. 15:12
Characteristic: - MyList class is a Linked List class with insertion to head and insertion to tail Operations: - insert_to_head - insert_to_tail - first - next #include #include using namespace std; typedef char ListElementType; class MyList { public: MyList(); ~MyList(); void insert_to_head(const ListElementType& elem); void insert_to_tail(const ListElementType& elem); bool first(ListElementTyp..
-
자료구조: Dynamic Linear List 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 16. 13:43
Characteristic: - MyList class is a List array class which can size dynamically Operations: - insert - first - next - getSize #include #include using namespace std; typedef char ListElementType; class MyList { public: MyList(int lSize); void insert(const ListElementType& elem); bool first(ListElementType& elem); bool next(ListElementType& elem); int getSize(); private: int listSize; ListElementT..
-
자료구조: Linked List로 Stack 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 16. 00:33
Characteristic: - MyStack class is stack class made Linked List Operations: - push - pop - top - isEmpty #include #include using namespace std; template class MyStack { public: MyStack(); void push(StackeElementType item); StackeElementType pop(); StackeElementType top(); bool isEmpty(); private: struct Node; typedef Node* Link; struct Node { StackeElementType data; Link next; }; Link head; }; t..
-
자료구조: Array로 Stack 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 15. 17:25
Characteristic: - MyStack class is stack class made by array operations: - push - pop - top - isEmpty - isFull #include #include using namespace std; const int maxStackSize = 1000; template class MyStack { public: MyStack(); void push(StackElementType item); StackElementType pop(); StackElementType top(); bool isEmpty(); bool isFull(); private: StackElementType stackArray[maxStackSize]; int topI..
-
알고리즘: 되추적(BackTracking)을 이용한 0 - 1 배낭채우기 문제(0- 1 knapsack problem) 공부하기알고리즘 2020. 11. 15. 00:33
이전에는 동적계획법을 이용하여 0-1 knapsack 문제에 대해 다루었다. 알고리즘: 배낭채우기(knapsack problem) 공부하기!(0-1 knapsack problem) 탐욕 알고리즘과 동적계획법은 최적화 문제를 푸는 두가지 방법이다. 둘 중 어떤 방법을 사용해도 문제를 풀 수 있다. 단일 출발점 최단경로 문제에서는 동적계획법은 모든 마디를 출발점으로 seungjuitmemo.tistory.com 이번 포스팅은 좀 더 효율적인 0-1 knapsack problem 알고리즘에 대해 알아본다. 기존의 0-1 knapsack problem은 상태공간트리에서 되추적을 이용하였다. 이 문제는 최댓값을 구하는 최적화 문제이기때문에 검색이 완전히 끝나기 전까지는 마디가 해답을 포함하고 있는지 알지 못한다...