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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ден90
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 55
#1

Реверс списка - C++

23.11.2012, 01:39. Просмотров 1204. Ответов 4
Метки нет (Все метки)

Скажите пожалуйста правильна ли логика реверса
C++
1
2
3
4
5
6
7
8
9
10
11
12
void IntList::Revers()
{
   ListItem *tmp, *ptr = NULL;
   while(last->next==0)
   {
   tmp = first->next;
   first->next = ptr;
   ptr = first;
   first = tmp;
   }
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 01:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реверс списка (C++):

Реверс списка - C++
Есть односвязный список. Требуется создать реверс списка, после чего продлить основной список этим реверсом(т.е. добавить к нему). При этом...

Реверс двусвязного списка - C++
Столкнулся с задачей написать функцию реверса двусвязного списка. Часа 3 сушил себе мозг с копиями указателей, получилось что надо хранить...

Написать код программы, выполняющей растяжку списка и вставку, удаление из списка и сжатие списка - C++
Люди ПОМОГИТЕ осталось совсем мало , мне нужна помощь!!! написать код программ: 1) Написать код программы, выполняющей растяжку...

Реверс массива - C++
Задание такое: Нужно сделать массив из 30 чисел, чтобы он отображался на экране наоборот и по 3 числа в столбик, при этом поменять столбики...

Реверс строки - C++
Привет ребят, вообщем я первокурсник и только разбираюсь с основами, у меня лабораторная работа нужно что бы строчка была задом наперед,...

Реверс числа - C++
Напишите функцию, выполняющую реверсию целого положительного числа, не превышаюшего 999999. (записать число наоборот) Вот код:(1 идет...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
23.11.2012, 02:04 #2
В общем, да, но: 1) вы учли случай пустого списка? 2) first ведь в конце равен NULL, а должен получить значение ptr; 3) last меняется как-то автоматически, что он способен прервать цикл?
1
Ден90
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 55
23.11.2012, 02:31  [ТС] #3
Не могли бы вы написать исправленный вариант? Не догоняю(
0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
23.11.2012, 03:02 #4
Не, так не пойдёт. Смотрите, что вам надо учесть для каждого из этих пунктов.
  1. Проверяем, если список пустой — выходим сразу же из функции.
  2. first = tmp; вот эту штуку на последней итерации делать не надо, но так как это было бы сильно геморройно делать проверку, то просто восстановите после цикла значение first из ptr; почему — попробуйте на бумажке нарисовать работу алгоритма;
  3. У вас условие цикла идёт по last->next; это в принципе сработает для остановки цикла, но ведь last вам надо переместить в конец списка после окончания цикла, а не оставить его указывать на бывший конец списка, который теперь начало. Запомните, например, перед циклом текущее начало списка, потом после цикла его присвоите last.
1
Ден90
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 55
23.11.2012, 03:11  [ТС] #5
Огромное спасибо!!!!!
И отдельное спасибо что не просто написали код!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 03:11
Привет! Вот еще темы с ответами:

Бит реверс - C++
Вводится число в десятичной системе надо записать его в двоичной и перевернуть. Полученое число надо выписать в десятичной системе помогите...

Реверс в файлах - C++
Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке (Сделать реверс). ...

Реверс строки - C++
Не могу написать программу которая перестанавливает символы в строке(abc->cba)

Реверс строки в стиле Си - C++
Подскажите как написать собственную функцию реверса строки в стиле СИ?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.11.2012, 03:11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru