Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 8

Объясните умственно отсталому как сделать элементарную вещь в списке

25.06.2013, 16:50. Показов 1070. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, спасибо что зашли в эту тему.
Сколько я ни пытался лазить по разным сайтам, темам, я никак не могу понять как этим списком пользоваться. Копирую код - всё работает чудесно, но пытаюсь отредактировать под свою задачу - ничего не получается.
Объясните мне, пожалуйста:
Как при проверке истинности условия в цикле программа может занести в список значение переменной, а потом вывести эти значения по порядку на экран?

Чтобы облегчить вам труды, нашел на форуме готовый код односвязного списка. Не исключаю, что нужно-то изменить пару строк:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream.h>
 
/*Ниже приведена программа,которая формирует стек из пяти целых чисел (1,2,3,4,5) 
и выводит его на экран. Функция помещения в стек по традиции называется push,а выборки pop.
Указатель для работы со стеком(top) всегда ссылается на его вершину.*/
 
//Структура - элемент стека
struct Node {
    int d;         //данные элемента структуры
    Node *p;       //Указатель для связи между структурами такого же типа
};
//-----------------------------
Node *first(int d);            //Формирование первого элемента(new)
void push(Node **top,int d);   //Добавление в стек (new)
int pop(Node **top);           //Выборка из стека  (delete)
//-----------------------------
//Главная функция
int main(){
    Node *top=NULL;          //Начальная инициализация указателя-вершины нулевым адресом .       
      top=first(1);            //Создание первого элемента стека     
 
for(int i=2;i<6;i++)push(&top,i); //Добавление в стек четырёх элементов   
while(top)            //Цикл вывода на экран значений элементов стека,и удаление их из памяти.                  
{                     //Цикл длится пока на вершину(в указатель top) не попадёт нулевой адрес.
cout<<'\n';           //Переход на следующую строку в консоли.
cout<<pop(&top)<<' '; //Вывод значений возвращаемых функцией pop(...)              
}
cout<<'\n';           //Переход на следующую строку в консоли.
    return 0;       //Возвращаем,что всё норм.                  
}
//------------------------------
//Начальное формирование стека
Node *first(int d){
    Node *pv=new Node;   //Создаём элемент: структура.
    pv->d=d;             //Присваиваем полю данных значения.
    pv->p=0;             //Первый элемент даёт признак конца стека NULL нужно при выборке. 
      cout<<pv->d<<' ';    //Выводи значение поля структуры. Это тоже можно убрать.
    return pv;           //Возвращаем адрес структуры.
}
 
//Занесение в стек
void push(Node **top,int d){
Node *pv=new Node;         //Создаём элемент: структура.
pv->d=d;                   //Присваиваем полю данных значения.
pv->p=*top;                //Созданный Элемент. Связыва-ся с элементом,который сейчас на Вершине
*top=pv;                   //Созданный Элемент: помещ-тся на вершину стека вместо старой вершины
cout<<(*top)->d<<' ';      //Выводится значение Созданного элемента Этот момент можно убрать.
}
//-----------------------------
//Выборка из стека
int pop(Node **top){
int temp=(*top)->d;        //Получаем значение элемента из вершины.
Node *pv=*top;             //Получаем адрес елемента из вершины.
(*top)=(*top)->p;            //В вершину помещаем новый элемент.
delete pv;                 //Удаляем старую вершину.
return temp;               //Возвращаем значение элемента из старой вершины.
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.06.2013, 16:50
Ответы с готовыми решениями:

Как можно сделать такую вещь?
как можно сделать что бы в некоторых блоках лендинга фон двигался вверх при прокрутке мышью а верхний слой вниз? как здесь...

Объясните мне простую вещь про BR
Прошу прощчения, если вопрос окажется дурацким, но ответьте мне, дураку, уважаемые знающие люди. Чем отличаются следующие понятия: ...

Как используя JavaScript сделать такую вещь?
У меня есть код: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;title&gt;Untitled Page&lt;/title&gt; &lt;link...

10
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
25.06.2013, 16:57
while(top) - делаем пока ячейка стека реальна и существует

cout<<pop(&top) - вывести на экран значение ячейки, полученное из ф-и pop. после выполнения ф-и pop, текущий э-т списка top сдвигается.
1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2013, 17:00
Цитата Сообщение от zhur48 Посмотреть сообщение
Копирую код - всё работает чудесно, но пытаюсь отредактировать под свою задачу - ничего не получается.
Покажите отредактированные под свою задачу варианты. Список как стек нужен?
1
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 8
25.06.2013, 17:03  [ТС]
Цитата Сообщение от FireProoF Посмотреть сообщение
while(top) - делаем пока ячейка стека реальна и существует

cout<<pop(&top) - вывести на экран значение ячейки, полученное из ф-и pop. после выполнения ф-и pop, текущий э-т списка top сдвигается.
спасибо, а как занести в цикле изменяющуюся переменную в список столько раз, сколько цикл действует? То есть чтобы потом все значения вывести
0
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
25.06.2013, 17:07
этот цикл извлекает из списка значения, сдвигая при этом текущий эл-т. Т.е. заносить в это время какие-либо значения непонятно зачем нужно)
1
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 8
25.06.2013, 17:09  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Покажите отредактированные под свою задачу варианты. Список как стек нужен?
Под свою задачу я только экспериментировал: через if например значение верхней переменной менять, вместо того чтобы с клавиатуры вводить. Как таковых вариантов нет.
Как я понимаю, стек есть список в обратном порядке? Мне нужно FIFO, то есть чтобы в каком порядке вводилось, в таком и выводилось. Насколько я понимаю, список оно и есть?
0
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
25.06.2013, 17:09
FIFO - это стек. Стек - это частный случай списка
1
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
25.06.2013, 17:12
А нас учили, что FIFO- это очередь, а LIFO - стек
1
17 / 17 / 3
Регистрация: 28.10.2012
Сообщений: 201
25.06.2013, 17:14
@zer0mail, прошу прощения за неграмотность. Был не прав.
1
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 8
25.06.2013, 17:17  [ТС]
Цитата Сообщение от FireProoF Посмотреть сообщение
этот цикл извлекает из списка значения, сдвигая при этом текущий эл-т. Т.е. заносить в это время какие-либо значения непонятно зачем нужно)
мне нужно не только извлечь, но и ввести эти значения сначала) вернее, не ввести, а в зависимости от значения некоторых переменных занести в этот список некоторое значение, хранящееся в другой переменной
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2013, 17:24
Цитата Сообщение от zhur48 Посмотреть сообщение
Мне нужно FIFO, то есть чтобы в каком порядке вводилось, в таком и выводилось. Насколько я понимаю, список оно и есть?
Список может быть организован по разному. FIFO это очередь (первым вошёл, первым вышел).

Добавлено через 3 минуты
Цитата Сообщение от zhur48 Посмотреть сообщение
мне нужно не только извлечь, но и ввести эти значения сначала) вернее, не ввести, а в зависимости от значения некоторых переменных занести в этот список некоторое значение, хранящееся в другой переменной
Найдите любой код односвязного списка. Менять значения в узлах - не проблема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.06.2013, 17:24
Помогаю со студенческими работами здесь

как вы считаете, я умственно отсталый или нет?
У меня такая ситуация - уже больше полугода пытаюсь научиться программировать. В основном, на php. Книги, видеоуроки, форумы, примеры......

Абсолютно не знаю python, нужно сделать простую вещь по инструкции
Не знаю Python вообще, почти как и программирования. Вот https://itnan.ru/post.php?c=1&amp;p=276495 инструкция. Нужно переместить слова из...

Мне нужно сделать одну вещь на сайте. Но никак не могу разобраться
Есть такой JS-скриптик $(document).ready(function(){ $('#getContent').click(function(){ $.ajax({ url: &quot;/page1.html&quot;, cache:...

Как сделать выравнивание в списке?
Пишу код для динамического списка , столкнулся с такой проблемой , как исправить ?

Как сделать подписанные картинки в списке?
Подскажите пожалуйста, не получается сделать надпись под картинкой, подпись все время куда-то сдвигается &lt;div class=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru