Я тоже сталкивался с подобными проблемами. В моем случае это было решено, получив курсор таким образом:
cursor = self.conn.cursor(buffered=True)
Во-первых, у вас есть число
if (tmp = NULL)
, которое должно быть
if (tmp == NULL)
, иначе вы всегда сбрасываете tmp в NULL и «if» никогда не вводится.
Во-вторых, в update () вы имеете дело с «root» вместо «tmp», правильное значение равно
while (tmp != NULL)
{
if (tmp->data % 2 == 0)
{
tmp->data = tmp->data / 2;
}
else
{
tmp->data = tmp->data * 2;
}
printf("\t%d", tmp->data);
tmp = tmp->next;
}
, так что на самом деле вы уже достаточно близки. пс .: первый вызов
createList((rand() % 10) + 1)
не нуждается в аргументах