ошибка в коде с++ с односвязным списком

323
21 января 2018, 04:39

Ошибка в самой последней функции кода List * reverse(List *u), которая инвертирует список. Помогите пожалуйста понять. Компилятор говорит, что 'tmp' was not declared in this scope. я не знаю где еще мне обьявть или что сделать с tmp что бы скомпилировался код.

struct Data
{   int a;
};
struct List
{   Data d;
List *next;
};
int main(int argc, char** argv) {
    List *u = NULL;
    // 1 uzel
    u = new List; // obyavlenie 
    u->d.a = 3;  
    u->next = NULL; // ukazatel na sled element
    // dlya udobstva sozd peremennuyu-ukazatel kotoraya hranit adress posl elementa
    List *x;
    // 2 uzel
    x = u;
    x->next = new List;
    x = x->next;
    x->d.a = 5;
    x->next = NULL;
    // 
    List *c;
    // 3 uzel
    c = x;
    c->next = new List;
    c = c->next;
    c->d.a = 1;
    c->next = NULL;
    //
    List *b;
    // 4 uzel
    b = c;
    b->next = new List;
    b = b->next;
    b->d.a = 9;
    b->next = NULL;
    // Vivod (prosto idem po spisku)
    while(u)
    {
        cout << u->d.a << endl; 
        u = u->next;         
    }
    return 0;
}
List * reverse(List *u)
{
        if (u == 0) return 0;
        if (u->next == 0) return u;
        u * tmp = reverse(u->next);
        u->next->next = u;
        u->next = 0;
        return tmp;
}
READ ALSO
Смешанная отрисовка моделей

Смешанная отрисовка моделей

Отрисовываю в Direct3D9 моделиВзял минимальный пример

300
Проблема со связными списками

Проблема со связными списками

Код компилируется, но выводится только один список, в порядке, в котором он был созданА функция reverse, которая ставит в обратном порядке элементы,...

385
дана прямокутна матриця цілих чисел [требует правки]

дана прямокутна матриця цілих чисел [требует правки]

дана прямокутна матриця цілих чиселВизначити номер першого зі стовпців, що містять хоча б один нульовий елемент та номери всіх рядків, які...

377