자료구조3 list 구현 list 특징 데이터가 연속적이지 않다. 임의 접근이 빠르지않다. 연속적이지 않아서 처음 끝 삽입 삭제가 매우 빠르다. stl list의 remove가 지원되는 이유는 list의 특징이 삽입 삭제가 빨라서 그렇다.. list 구현 소스 #include #include using namespace std; //list : 연결리스트 // [1] -> [2] -> [3] ->[4] Myhead[end()] //capacity가 필요없는 이유는 -> 현재 데이터에서 이어붙이면되기때문이다. //remove 삽입 삭제가 빠르니.. /* * 데이터가 연속적이지 않다. * 임의 접근이 빠르지않다 * * 그러나 연속적이지 않아서 처음 끝 삽입 삭제가 매우빠르다. */ template class Node; templat.. 2022. 4. 22. stack 구현 구현 소스 template class Stack { public: void Push(T& value) { _container.push_back(value); } void Pop() { } T& top() { } int size() {return _container.size()} public: //vector _container; //list _continaer; Container _container; }; 위에서 stack의 구현할 때 vector로 구현을 해도되고, list로 구현을 된다 이것을 또 정하기 싫으니 템플릿으로 해놓고 필요할때마다 변경하면된다. STL 에서 STACK 구현부 _STD_BEGIN // CLASS TEMPLATE stack template class stack { public:.. 2022. 4. 9. 트리 트리란? 정의는 사이클이 발생하지 않으면서 모든 노드끼리 연결되어있는 것이다. 트리는 rooted tree, unrooted tree로 두가지가있다. 노드가 하나라도 트리라고 부를 수 있다. 이진트리란? 이진트리는 자식이 두개가 있는 것이아니라, 자식을 최대 2개로 제한하는 것이다. 1개나 2개가 될 수도 있다. 이진트리는 구현하기가 쉽다 배열로도 구현이 쉽다 i번 노드에 대해서 왼쪽 노드는 i * 2, 오른쪽 노드는 i * 2 + 1이다 반대로 자식들의 부모 노드는 자식 노드에 대해서 /2를 하면된다. 트리의 순회 트리의 순회에서는 트리를 만들고 난 뒤 전위순회, 후위순회, 중위순회가 있다. 재귀를 통해서 만들 수 있다 만들기 Tree를 struct구조체로 만들어서 상태를 관리하는데 해당 트리들은 왼쪽.. 2021. 12. 15. 이전 1 다음