Вставка в дерево с помощью функции void - PullRequest
0 голосов
/ 18 мая 2011

Итак, у меня есть глобальная переменная с именем

struct * tree root = NULL;

, и я инициализирую ее внутри функции с именем void init().

* 1006.дали void insert() для ADT, и я вынужден использовать это.Но каждый раз, когда я создаю новый узел, я не знаю, как сохранить это значение, так как не могу вернуть узел после завершения функции.

Ответы [ 3 ]

1 голос
/ 18 мая 2011

Вам дали функцию вставки, которая должна возвращать void (иначе не возвращаемое значение), но означает ли это, что вы не можете принимать аргументы?Не так, как вы это описали.Функция без аргументов в C имеет переменное число аргументов.Если назначенное вами объявление void insert(void), то оно может быть решено только с использованием глобальных переменных (вставляемое новое значение находится в глобальном var 'newval') и рекурсивно вызываемой do_insert, которая принимает значение и текущий узел.

0 голосов
/ 22 ноября 2011

Можете ли вы дать более подробную информацию о структуре узла дерева? Как есть левый и правый указатели? Есть ли другие поля, о которых мы должны знать?

0 голосов
/ 18 мая 2011

Не знаю, если это в правилах, но если вы delcare:

static struct * tree root;

, то это будет видно для всех функций в исходном файле.

...