
#include <vector>
#include <string>
#include "Sequence.h"

class PTree
{
private:
    std::vector< std::vector< Sequence > * > myLevels;

public:
    PTree(const std::vector<Sequence *> & leaves);
    ~PTree();
    void print(std::ostream & out, int level, int index,
        std::string prefix, std::string subprefix) const;
    int getCount();
    void label();

    friend std::ostream & operator<<(std::ostream & out, const PTree & p);
};
