У меня есть задание, которое просит меня прочитать родовое дерево из txt, выделить дерево в памяти, а затем выполнить ряд операций, таких как удаление узла, удаление подкатегория, перечисление дочерних узлов узла, перечисление потомков узла и, с которым у меня возникают проблемы, перечисление отца узла. Используемый язык - C. Могут быть элементы языка C++, которые не являются «ярлыками», например, с использованием классов.Generic Tree отец кода узла или алгоритма
Я использую эту структуру для родового дерева:
typedef struct genTree
{
char info;
struct genTree* first; //points to the first child of a node
struct genTree* next; //points to the first sibling of a node
}tgt;
typedef tgt* pgt;
Это означает, что отец узла указывает на это первый ребенок, то этот ребенок указывает на это братья и сестры.
Я придумал эту функцию, которая всегда возвращает корень дерева:
pgt find_father(pgt root, char SON_PARAM)
{
pgt son, father;
if(root == NULL) return NULL;
if(root->info == SON_NODE) return root;
if(root->next != NULL) {
son = find_father(root->next, SON_NODE);
return son;
}
else {
father = root;
son = find_father(root->first, SON_NODE);
if(son == NULL) return NULL;
else return son;
}
}
Любая помощь приветствуется.
Не запускается или не компилируется? 'genTree *' должен быть 'struct genTree *' –
Он запускается и выходит с ошибкой, выдает значение 1, исправляет туманность – Pedro
Везде. Входной параметр тоже. Вставьте код, который вы скомпилировали. Включая функцию main(). Что означает код выхода 1? –