C++ списки, классы

программирование C++

Есть структура + класс
struct List
{
int num;
struct List *next;
struct List *last;
};
class queue
{
private:
int n;
List *head;
List *tail;
List *ptrLast;
public:
queue();
//queue(int mas[]);
//queue(char str[]);
~queue();
void Print_Queue();
void Add_Queue(int num);
void Del_All_Queue();
void Del_Element();
};
Добавление я реализовал нормально, но вот в чем проблема, как выводить весь список начиная с head что бы не двигать адрес, ибо если двигать мы меняем шапку и весь наш труд уходит в колодец
пробую так
void queue::Print_Queue()
{
int i=0;
while(i<n)
{
cout<<head->num<<";";
head=head->next;
i++;
}
}
Все выводит, но естественно если мы попробуем выводить еще раз то head уже не будет указывать на начало списка, а будет грубо говоря хвостом

Примечание:
>Agrh
>Изменять не head, а временный указатель. Примерно как по ссылке.
он же будет меняться вместе с хэдом
Ответы:
Ну, а зачем Вы в функции вывода head используете???? Объявите внутри функции переменную, ее и изменяйте. head не трогайте.
Изменять не head, а временный указатель. Примерно как по ссылке.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.