Если вы хотите, чтобы переменная распределялась между вызовами функций, вы должны использовать ключевое слово static
.Вы можете прочитать больше об этом здесь .
Сначала инициализируйте его, объявив:
static node *pds_parent = NULL;
Это означает, что первое значениепеременная указателя будет NULL.Перед каждым рекурсивным вызовом установите для него значение текущего посещаемого узла.Кроме того, используйте его, только если это не NULL
.
РЕДАКТИРОВАТЬ: Я также добавлю, что я бы предпочел изменить сигнатуру функции на void insertion(node *pds, int item, node *parent)
и вызвать его с NULL
в первый раз.Конечно, использование NULL
не очень приятно, но вы можете обернуть его.Это то, что предложил Киран Бирадар, я полагаю.