Форум программистов, компьютерный форум CyberForum.ru

Очередь FIFO - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сформировать массив из 20 целых чисел на языке С++ http://www.cyberforum.ru/cpp-beginners/thread581671.html
Сформировать массив из 20 целых чисел. Для каждого значения элемента массива посчитать и вывести на экран число его вхождений в массив.
C++ Найти точку, расстояние от которой до начала координат минимальное На плоскости задано N точек с координатами (xi,yi) . Найти точку, расстояние от которой до начала координат минимальное. Для задания координат точки использовать структурный тип. http://www.cyberforum.ru/cpp-beginners/thread581669.html
Картотека C++
Здравствуйте, помогите пожалуйста. Скажите почему поиск не работает? Задание: Картотека в бюро обмена квартир организована как линейный список. Сведения о каждой квартире содержат: *количество комнат *этаж *площадь *адрес Составить программу, которая обеспечивает *начальное формирование картотеки *ввод заявки на обмен
C++ ошибка в указателе
после выполнения функции pbeg->next ссылается на последний элемент, а не на следующий, помогите! void addf() { FILE *f1; pt=new magazin; pr=new magazin; magazin m; f1 = fopen("6.dat","r+b"); fread(&m.nomer,sizeof(m.nomer),1,f1); fread(&m.nazvanie,sizeof(m.nazvanie),1,f1);
C++ Функция разбиения матрицы на две http://www.cyberforum.ru/cpp-beginners/thread581658.html
Доброго времени суток уважаемые форумчане. Столкнулся с проблемой. Необходимо написать функцию разбиения матрицы на две матрицы, в качестве входных параметров должна быть матрица, а в качестве выходных две матрицы. Сделал программу, но преподаватель забраковал. В общем надо сделать с помощью функции. Вот что у меня получилось: #include "stdafx.h" #include <iostream> #include <vector> using...
C++ Как лучше всего учить язык C++? Хочу начать изучать язык программирования! Остановился на C++, а с чего начать не знаю! подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.05.2012, 21:41     Очередь FIFO
ну все же просто. если getLastItem вернула 0, значит список пустой. значит у него еще нет головы (первого итема.). значит новый созданный и будет его головой. т.е что-нибудь типа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void push(int value)
{
  Item* newItem = new Item();
  newItem->value = value;
  newItem->next = 0;
 
  Item* lastItem = getLastItem();
  if (lastItem == 0) // если список пустой
  {
     firstItem = newItem;
  }
  else
  {
     lastItem->next = newItem;
  }
}

для удаления последнего элемента из списка действия такие же
если предпоследний элемент не вернулся, значит список или пустой или состоит из одного элемента. проверяем firstItem. если оно нуль - значит список пустой и ничего из него удалить не получится.
если же firstItem не ноль - то он является последним в списке. его нужно задестроить и указатель firstItem приравнять к нулю.
 
Текущее время: 16:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru