Actually I have a list, I ask it this way.

struct Node //Структура являющаяся звеном списка { int x; //Значение x будет передаваться в список Node *Next,*Prev; //Указатели на адреса следующего и предыдущего элементов списка }; class List //Создаем тип данных Список { Node *Head,*Tail; //Указатели на адреса начала списка и его конца public: List():Head(NULL),Tail(NULL){}; //Инициализируем адреса как пустые ~List(); //Деструктор void Show(); //Функция отображения списка на экране void Add(int x); //Функция добавления элементов в список }; 

The problem is that in the function of adding an element (add) not 1 variable is added, but 6, how can I change the code to do all this? that is, if by task it is the author's surname - the name of the book - the year of publication - the price - the number of copies - the total cost

I add an element like this:

  void List::Add(int x) { Node *temp=new Node; //Выделение памяти под новый элемент структуры temp->Next=NULL; //Указываем, что изначально по следующему адресу пусто temp->x=x;//Записываем значение в структуру if (Head!=NULL) //Если список не пуст { temp->Prev=Tail; //Указываем адрес на предыдущий элемент в соотв. поле Tail->Next=temp; //Указываем адрес следующего за хвостом элемента Tail=temp; //Меняем адрес хвоста } else //Если список пустой { temp->Prev=NULL; //Предыдущий элемент указывает в пустоту Head=Tail=temp; //Голова=Хвост=тот элемент, что сейчас добавили } } 

    2 answers 2

    and what exactly is the trouble then?

    you just need to redo it

    1. Node structure (by adding the fields " author's last name - title of the book - year of publication - price - number of copies - total cost ")
    2. Add function (passing it the same parameters ...)
    • Well, add something I add, I understand it. problem in this line: temp-> x = x; // Write the value in the structure and leave x? or change to something? - Nikola Krivosheya
    • what's wrong with that? This arrow means "take the parameter x from temp" and it is already assigned a new value ... if you need it, leave it. ps but it is better to read a book on C ++, a lot of things will immediately clear up in my head ... - ProkletyiPirat
     struct Node //Структура являющаяся звеном списка { // тут нужно дописать поля: string Family_autor; //поле фамилия автора string Name_book; //поле название книги int Year; //поле год издания int Price; //поле цена int Count; //поле количество экземпляров int Total_cost; //поле общая стоимость Node *Next,*Prev; //Указатели на адреса следующего и предыдущего элементов списка }; class List //Создаем тип данных Список { Node *Head,*Tail; //Указатели на адреса начала списка и его конца public: List():Head(NULL),Tail(NULL){}; //Инициализируем адреса как пустые ~List(); //Деструктор void Show(); //Функция отображения списка на экране void Add(int x); //Функция добавления элементов в список }; void List::Add(string family_autor, string name_book, int year, int price, int count, int total_cost)//передаем параметры { Node *temp=new Node; //Выделение памяти под новый элемент структуры temp->Next=NULL; //Указываем, что изначально по следующему адресу пусто //Записываем значение в структуру temp->Family_autor=family_autor; temp->Name_book=name_book; temp->Year=year; temp->Price=price; temp->Count=count; temp->total_cost=total_cost; if (Head!=NULL) //Если список не пуст { temp->Prev=Tail; //Указываем адрес на предыдущий элемент в соотв. поле Tail->Next=temp; //Указываем адрес следующего за хвостом элемента Tail=temp; //Меняем адрес хвоста } else //Если список пустой { temp->Prev=NULL; //Предыдущий элемент указывает в пустоту Head=Tail=temp; //Голова=Хвост=тот элемент, что сейчас добавили } }