아래의 문제에 대한 최상의 알고리즘은 무엇입니까?
출력이 유사합니다 나무의 이름 및 생성을 출력벡터 문제에 대한 알고리즘
방법 PrintFamilyTree을 (구현)
이름 : 월 세대 : 0
이름 : 마이크 세대 : 1
이름 : 그렉 세대 : 2
이름 : 캐롤 : 세대 : 2
이름 : 피터 세대 : 3
이름 : 마샤 세대 : 3
이름 : 바비 세대 : 1
class Human : public std::vector<Human *>
{
public:
Human(const std::string &name) : m_Name(name) {};
virtual void PrintFamilyTree(const short &generation = 0) const;
protected:
std::string m_Name;
};
class Male: public Human
{
public:
Male(const std::string &name) : Human(name) {};
};
class Female: public Human
{
public:
Female(const std::string &name) : Human(name) {};
};
void main()
{
Male m1("Mike"), m2("Greg"), m3("Peter"), m4("Bobby");
Female f1("Carol"), f2("Marcia"), f3("Jan");
m1.push_back(&m2);
f1.push_back(&m3);
f1.push_back(&f2);
m1.push_back(&f1);
f3.push_back(&m1);
f3.push_back(&m4);
f3.PrintFamilyTree();
}
숙제처럼 보입니까? – Guge
당신은 정말로 STL 컨테이너를 상속 받아서는 안됩니다 ... –
사이드 노트로 : 대신 std-containers에서 파생해서는 안됩니다 (가상 dtors가 없기 때문에) ... 어댑터 클래스를 만듭니다 :) – Christian