반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | #include <iostream> #include <cstdio> // stdio.h using namespace std; class node { private: friend class chain; friend class chainIter; int data; node *next; }; class chain { private: friend class chainIter; node *first, *last; public: // 생성자 chain() { first = last = NULL; } ~chain() { } void insert(int data) { if (first == NULL) // 노드 생성이 아직 한번도 안됐다면 { node *newNode = new node; // 노드 생성 // = new node; first = last = newNode; newNode->next = NULL; newNode->data = data; } // 하나라도 노드가 있다면 else { // malloc node *newNode = new node; last->next = newNode; newNode->next = NULL; newNode->data = data; last = newNode; } } void print() { node *cur = first; if (first == NULL) return; // 에러 while (cur != NULL) { cout << cur->data << " "; cur = cur->next; } } int getMin() { int minVal = 987654321; node *cur = first; if (first == NULL) return -987654321; // 에러 while (cur != NULL) { if (minVal > cur->data) minVal = cur->data; cur = cur->next; } return minVal; } }; // //class chainIter { //private: // node *iter; //public: // // iterator begin // chainIter begin() { // return chainIter(first); // first // } // // iterator end // chainIter end() { // return chainIter(0); // } // // chainIter(node *startNode = 0) { // iter = startNode; // } // // 모름 // // *abc // int& operator*() const { // return iter->data; // } // // 모름 // int* operator &() { // return &iter->data; // } // // chainIter& operator++() { // iter = iter->next; // return *this; // } // // chainIter operator++(int) { // chainIter tmp = *this; // iter = iter->next; // return tmp; // } // // bool operator!=(const chainIter tmp) const { // return iter != tmp.iter; // } // // bool operator==(const chainIter tmp) const { // return iter == tmp.iter; // } //}; int main() { chain kau = chain(); //chainIter iter = chainIter(); int arr[6] = { 1,2,3,4,5,6 }; // int 최고크기 2^32 - 1; int sz =sizeof(arr) / sizeof(int); for (int i = 0; i < sz; i++) kau.insert(arr[i]); kau.print(); cout << kau.getMin(); return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <iostream> #include <cstdio> using namespace std; template <typename kau> void _swap(kau a, kau b) { kau tmp = a; a = b; b = tmp; cout << a << " " << b << endl; } int main() { char n1 = 'a', n2 = 'b'; double d1 = 1.1, d2 = 3.3; _swap<double>(d1, n1); return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Tutoring > Data Structure' 카테고리의 다른 글
연결리스트 및 응용 예시 문제 (0) | 2018.05.24 |
---|---|
튜터링 단일 연결 리스트 (0) | 2018.04.18 |
튜터링 atoi, 후위 표기식 (0) | 2018.04.11 |
튜터링 연습문제 1주차 (0) | 2018.03.21 |
hash (0) | 2018.03.04 |