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

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

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

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

23.11.2012, 01:39. Просмотров 1160. Ответов 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;
   }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 01:39     Реверс списка
Посмотрите здесь:

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

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

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

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

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

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

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

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

Реверс положытельной подстроки - C++
Надо найти положытельную подстроку и записать ее реверс вот мой код но он почемуто не работает( // massd.cpp: определяет точку входа для...

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

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

Функция и реверс строки - C++
1. Составить программу, которая реверсирует каждое слово строки str. 2. Написать и протестировать функцию STRP(str1, str2), которая...

Реверс масива по строках. - C++
Задание: Поменять первую строку с последней, вторую с предпоследней и так далее. Я делаю вот так: # include <iostream> #include...


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

Или воспользуйтесь поиском по форуму:
Ден90
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 55
23.11.2012, 03:11  [ТС]     Реверс списка #5
Огромное спасибо!!!!!
И отдельное спасибо что не просто написали код!
Yandex
Объявления
23.11.2012, 03:11     Реверс списка
Ответ Создать тему
Опции темы

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