ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자료구조...66
    일지 2021. 3. 16. 21:02

    이진 탐색 트리 구현 준비

    구현에 필요한 메서드 및 속성은 다음과 같다.

    • 속성 
      • Count BinarySearchTree에 포함된 데이터의 개수
      • Max BinarySearchTree에 추가된 데이터 중 가장 큰 값
      • Min BinarySearchTree에 추가된 데이터 중 가장 작은 값
    • 메서드 
      • Search(data) 데이터가 저장되어 있는지 여부 확인
      • Insert(data) BinarySearchTree의 규칙에 맞게 데이터를 저장
      • Delete(data) 일치하는 데이터를 제거하고 실행 결과를 반환
      • Clear() 저장되어 있는 모든 데이터 삭제

     

    이진 탐색 트리 구현

    연결 자료구조를 이용하여 이진 탐색 트리를 구현한다.

     

    BinarySearchTree.h

    #pragma once
    #include <iostream>
    
    class BinarySearchTree
    {
    public:
    #pragma region 노드
    	struct Node
    	{
    		Node() {}
    		Node(int value) { m_data = value; }
    
    		int m_data{ 0 };
    		Node* m_prev{ nullptr };
    		Node* m_next{ nullptr };
    	};
    #pragma endregion
    
    #pragma region 생성자
    	BinarySearchTree();
    	~BinarySearchTree();
    #pragma endregion
    
    #pragma region 속성
    	const size_t Count() { return m_count; }
    	const int Max() { return m_max; }
    	const int Min() { return m_min; }
    #pragma endregion
    
    #pragma region 메서드
    	void Insert(int value);
    
    	void Delete(int value);
    	void Clear();
    
    	bool Search(int value);
    
    	void PrintInfo();
    #pragma endregion
    
    private:
    #pragma region Class Util
    	Node* PopNode(int value);
    	void PushNode(Node* node);
    #pragma endregion
    
    #pragma region 변수
    	size_t m_count;
    	int m_min;
    	int m_max;
    
    	Node* m_root;
    	Node* m_free;
    #pragma endregion
    };

    댓글

Designed by Tistory.