포인터 대신 반복자를 사용하는 C++에서 트리 데이터 구조를 만들려면 어떻게해야합니까? 나는 이것을 할 수있는 STL에서 아무것도 찾을 수 없었다. 내가 뭘하고 싶은 것은이 같은 트리를 만들고 조작 할 수 있습니다 : C++에서 트리를 만드는 방법은 무엇입니까?
#include <iostream>
#include <tree>
using namespace std;
int main()
{
tree<int> myTree;
tree<int>::iterator i = myTree.root();
*i = 42;
tree<int>::iterator j = i.add_child();
*j = 777;
j = j.parent();
if (i == myTree.root() && i == j) cout << "i and j are both pointing to the root\n";
return 0;
}
감사합니다, tree.hh는 내가 찾던 그냥 뭐 것 같다. 이 임의의 인덱스 유형을 들고 의 데이터 구조를 이익을 얻기위한 경우
, 다음지도를 이용하여 을 고려 검색을위한 최적화 삽입 좋은. 대수 검색, 대수 삽입, 삭제 대수 선형 공간 :
지도에는 는 트리 것과 동일한 성능 보장을 갖고 연관 컨테이너이다. 내부적으로 그들은 종종 이 아니지만 적색 - 검은 색 나무로 으로 구현됩니다. STL 사용자가 인 경우 STL 알고리즘 및 데이터 구조에 대한 성능 보증은 입니다. 그들이 나무로 구현되었는지 여부는 이거나 작은 녹색 남성은 과 관련이 없습니다.
지도가 필요한지 잘 모르겠지만 정보를 제공해 주셔서 감사합니다. 나무를 구현하는 대신 가능할 때마다지도를 사용하는 것을 기억합니다.