Двойное использование оператора Arrow в «Stack by Linked List» - PullRequest
0 голосов
/ 26 октября 2019

Как я могу дважды вернуться назад с оператором стрелки в связанном списке? (top -> next -> next не работает)

Когда мы создаем Stacks by Linked list, операция «push» аналогична следующей операции

newNode -> next = top;top = newNode;

Итак, я думаю, что после выполнения push нажмите top-> next, став перед Node of top. Я проверил, что это правильно.

Мой вопрос: как я могу вернуться дважды? Я попытался top -> next -> next, но это не работает .. Могу ли я узнать причину? и как я могу это сделать ..?

//c++
struct node {
   int x;
   int y;
   struct node *next;
};
struct node* top = NULL;
void push(int _x, int _y) {
   struct node* new_node = (struct node*) malloc(sizeof(struct node));
     new_node->x = _x;
     new_node->y = _y;
     new_node->next = top;
     top = new_node;
}
//When I push 00,01,10
cout<<"top: "<< top->x << top->y <<endl; //top: 10
cout<<"top_next: "<< top->next->x << top->next->y <<endl; //top_next: 01
cout<<"top_next_next: "<< top->next->next->x << top->next->next->y
    <<endl; //This is Problem (I want 00)

Возвращает странное значение, и я не вижу значения 'top-> next-> next-> x или y'

...