У меня есть двоичное дерево, а не BST, поэтому элементы не сортируются, а информация, которую каждый узел имеет, имеет тип строки. Когда я печатающие элементы, которые держат целые числа BST Я делаю это с помощью рекурсии, как это: (in_order печати)Как печатать элементы из двоичного дерева по уровню в c
void PrintElements(const Data* node)
{
// Check if its empty
if (node == NULL)
return;
PrintElements(node->left);
printf(" %d\n", node->key);
PrintElements(node->right);
}
Но я не могу понять, как печатать на уровне двоичных деревьев проведение строк, которые являются не отсортировано (в алфавитном порядке). Любая помощь очень ценится.
Я думаю, что ваш вопрос немного неясен. Вам не нужны данные для сортировки в дереве, чтобы пересечь его и распечатать данные (он будет просто распечатан в том порядке, в котором он находится в дереве). Вы говорите, что у вас есть несортированное дерево, и вы хотите распечатать данные в алфавитном порядке? – Joel
Когда вы говорите «распечатать их по уровню», вы хотите, чтобы вы печатали все записи на заданном уровне дерева перед печатью любых записей на следующем нижнем уровне? –
Помогает ли это? http://stackoverflow.com/questions/3589716/level-order-traversal-of-a-binary-tree – Arun