2016-03-28 3 views
1

Я пишу программу на C++, которая должна работать со связанным списком. Но я не могу понять, как я могу получить доступ к структуре, которая находится в другой структуре.Доступ к структуре в структуре C++

#include <cstddef> 
#include "list.hpp" 
using std::size_t; 

struct list { 
    struct node { 
     double val; 
     node* prev; 
     node* next; 
    }; 

    node* head = nullptr; 
    node* tail = nullptr; 
    size_t size = 0; 
}; 

Не могли бы вы объяснить мне, как это работает? У меня есть метод, но я не знаю, как я могу использовать этот structur в этом методе.

void push_back(list& l, double elem) { 
    node *new_node = new node(elem); 
    if (l.head==null) { 
     l.head = new_node; 

    } 
    node *curent = l.head; 
    while (curent) { 
     if (!curent->next) { 
      curent->next = new_node; 
     } 
     cur = cur->next; 
    } 
} 

спасибо.

+4

'list :: node' вместо' node' – deviantfan

+0

Вы не определили конструктор 'node', поэтому вы не можете использовать' new node (elem) '. – Barmar

+0

@Barmar, поэтому вы имеете в виду, что это должно быть как «list :: node» new_node = new list :: node (elem); '? – Lemmy

ответ

1

в этом коде есть двусвязный список

я постараюсь объяснить код функции push_back.

В начале у нас есть пустое push_back (список & l, double elem), l это ваш текущий LinkedList, который вы хотите добавить к нему в очереди, elem - это значение вашего нового элемента.

if (l.head==null) { 
    l.head = new_node; 
} 

если ваш LinkedList пуст, мы добавляем новый элемент

exemple1 : empty LinkedList

если LinkedList не пуст

push back

это простой код

Смежные вопросы