Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1

Разбираю списки .Правильно ли понял ?

21.09.2011, 23:09. Показов 924. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
А если нет - укажите где ошибки у меня .
и
1) Правильный ли код с точки зрения понимания ?
2) Как бы выглядела более оптимизированная версия ?



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
struct Node
{
    int data;   //информационное поле, данные, любой порядковый тип
    Node *next;     //указатель на следующий элемент
};
typedef Node * PNode;
 
 
 
void main()
{
int SomeValue;
Pnode head ;
Pnode last;
Pnode temp;
 
last = new Node;
last -> value = SomeValue;
last-> next = NULL;
 
head = last;
 
temp = new Node;
 
temp->value = SomeValue;
temp->next = NULL;
last->next = temp;
 
temp->value = SomeValue;
temp->next = NULL;
 
last->next = temp;
 
// итератор по списку
temp = head;
while(temp->next != NULL)
{
//операции
// ...
//
temp = temp->next;
 
}
 
 
}

т е сделали Временную структуру ,заполнили ,поставили указатель на нее в структуре last ????

и + вопрос :
0 и NULL не одно и то же
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.09.2011, 23:09
Ответы с готовыми решениями:

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

Правильно ли я понял условие ?
1) Нахожу обратную матрицу для очередной матрицы 2) Сравниваю полученную обратную матрицу с последующими матрицами 3) Если есть...

Правильно ли я понял объявления указателей
Делая задания по самоучителю, как то нужно проверять себя. Кроме вас некому )) Задание состоит в том - нужно объявить новый тип. Если...

4
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
21.09.2011, 23:17
Цитата Сообщение от zek921 Посмотреть сообщение
0 и NULL не одно и то же
в языке Си нет

Цитата Сообщение от zek921 Посмотреть сообщение
2) Как бы выглядела более оптимизированная версия ?
смотри std::list
0
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
21.09.2011, 23:36  [ТС]
а касательно кода ,какие ошибки допустил ? С радостью бы покопался в List ,но боюсь,что без предварительного знания вопроса запутаюсь еще больше .
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
22.09.2011, 00:32
Замени
C++
1
2
3
4
5
6
7
8
while(temp->next != NULL)
{
//операции
// ...
//
temp = temp->next;
 
}
На
C++
1
2
3
4
5
6
7
8
while(temp != NULL)
{
//операции
// ...
//
temp = temp->next;
 
}
Допустим в списке 1 узел. По идее блок цикла должен один раз проработать. Проработает ли один раз блок цикла при условии temp->next != NULL ? Нет. А temp != NULL ? Проработает.
А если вообще нет узлов? Тогда будет ошибка времени выполнения, потому что temp = 0, а temp->next не существует. Для двух узлов и более, думаю, понятно как дела обстоят.

Добавлено через 6 минут
Цитата Сообщение от zek921 Посмотреть сообщение
last -> value = SomeValue;
SomeValue - не инициализированная переменная. Хотя иногда срабатывает, но лучше такого не допускать.

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
temp->value = SomeValue;
temp->next = NULL;
last->next = temp;
 
temp->value = SomeValue;
temp->next = NULL;
 
last->next = temp;
Правильно так:
C++
1
2
3
4
5
temp->value = SomeValue;
temp->next = NULL;
last->next = temp;
 
Last = temp;
0
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
22.09.2011, 01:41  [ТС]

Не по теме:

спасибо,с++мягко говоря не помню ,привык к c #,где все готовенькое

еще вопрос ,важна ли последовательность присвоить голове списка значения хвоста,а уже потом хвост заполнять и наводить связи или важно сначала заполнить
хвост ,а уже потом присваивать значения (ссылки?..)голове ?,

Добавлено через 1 минуту
(первый,элемент)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.09.2011, 01:41
Помогаю со студенческими работами здесь

С++ правильно ли я понял эти аспекты?
Хочу задать несколько вопросов, чтобы понять правильно ли я все понял) 1. class Cow { private: char name; ...

Указатели: правильно ли я понял вопрос?
Есть задание Я написал такой код: #include<iostream> using namespace std; #include<windows> int main() {

Можете сказать, я правильно понял задание?
Вычислить сумму чисел в каждой строке. N<=10, M<=10 #include<conio.h> #include<stdio.h> #include<stdlib.h> ...

Я понял, мало кто знает, как ПРАВИЛЬНО интегрировать Internet Explorer в свою :-) окно...
Али все же кто-то этим занимался? (Да не сочтет модератор это дублированием :-)) Снорк.

Правильно ли я понял?
In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере 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-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru