Я следующие функции для печати деревьев в порядке, который работает должным образом:печати деревья в предзаказа через запятую
void PrintInOrder(TTreeNode const * const pRoot) {
if (pRoot != 0) {
PrintInOrder(pRoot->pLeft);
if(pRoot->pLeft) std::cout << ",";
std::cout << pRoot->Data;
if(pRoot->pRight) std::cout << ",";
PrintInOrder(pRoot->pRight);
}
}
Это мой предзаказ печати функция:
void PrintPreOrder(TTreeNode const * const pRoot) {
if (pRoot != 0) {
std::cout << pRoot->Data << std::endl;
PrintPreOrder(pRoot->pLeft);
PrintPreOrder(pRoot->pRight);
}
}
Как я слишком глупо, чтобы понять, как напечатать его, разделив путь как функция порядка, я надеюсь, что вы, ребята, можете мне помочь!
спасибо!
Update:
функция Preorder теперь работает, так это правая функция postorder?
void PrintPostOrder(TTreeNode const * const pRoot) {
if (pRoot != 0) {
PrintPostOrder(pRoot->pLeft);
if(pRoot->pLeft) std::cout << ",";
PrintPostOrder(pRoot->pRight);
if(pRoot->pRight) std::cout << ",";
std::cout << pRoot->Data;
}
}
Добро пожаловать в Переполнение стека. Пожалуйста, прочитайте [FAQ] до очень долгого времени. У вас есть 90% или более ответов в функции «PrintInOrder()». Адаптация к функциям 'PrintPreOrder()' и 'PrintPostOder()' является тривиальным упражнением в редактировании. –