트리 알고리즘을 공부하다 보니까
공부한것을 이용해 보고싶다는 생각이 들었다.
그래서 유니티로 트리구조를 가시적으로 보이도록 구현해봤다.
이진트리와 AVL 트리를 구현했다.
둘다 기본적인 구조는 이진트리이다.
삽입된 노드는 root노드부터 비교하면서 자신의 값보다 현재
위치한 노드가 크면 왼쪽 삽입된 노드가 크면 오른쪽으로 이동한다.
바이너리(이진)트리
AVL 트리
트리의 균형도가 절대 값1이 넘어 갈 경우 자동으로 균형 회전을 하도록 구현했다.
콘솔로만 구현하기는 인터넷에도 많고 구현도 잘되어 있다. 트리구조에 따라 UI오브젝트도 움직이는 이려면 추가적으로 자료구조 구현이 필요하다.
사실 실제 데이터가 움직이는 트리구조와 이미지박스가 움직이는 것은 아예 상관이 없이 움직인다고 생각하면 된다. 별도로 움직여야 한다.
내가 구현한 코드에 노드는 Key는 int비교를 하기 위한 변수로 사용하고
Value는 오브젝트를 움직이기 위한 변수를 같이 담고 있다. (키 값을 통해 오브젝트를 불러오기 위함)
먼저 오브젝트의 위치를 움직여주고 그 다음에 트리구조에 데이터 구조를 변경하도록 한다.
'포트폴리오 와 제작게임 > 알고리즘 유니티구현' 카테고리의 다른 글
그래프 알고리즘 유니티_구현 (0) | 2019.04.27 |
---|