Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2017, 19:30   #11
artilun
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 25
По умолчанию

во втором if p->next=head; , когда доходим до конца списка
artilun вне форума Ответить с цитированием
Старый 15.02.2017, 19:31   #12
artilun
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 25
По умолчанию

и предыдущий на нулл указываетpr->next=NULL;
artilun вне форума Ответить с цитированием
Старый 15.02.2017, 19:53   #13
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А ну что ты можешь сказать о:

Код:
int count = 0;
while (count != num)
{
	if (p->next == NULL)
	{
		p = head;
		count++;
		continue;
	}
	p = p->next;
	count++;
}
ura_111 вне форума Ответить с цитированием
Старый 15.02.2017, 19:57   #14
artilun
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 25
По умолчанию

Сначала проходим список до конца, последний элемент присоединяем к голове. Предыдущий элемент ссылается на нулл, затем проходим список снова, пока не встретим нулл и делаем это столько раз, на сколько нужно сместить.сейчас попробую зарисовать
artilun вне форума Ответить с цитированием
Старый 15.02.2017, 20:00   #15
artilun
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 25
По умолчанию

извините за глупый вопрос , а p здесь у нас указывает на первый элемент или последний ?
artilun вне форума Ответить с цитированием
Старый 15.02.2017, 20:03   #16
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Код:
list *p = head;
int count = 0;
while (count != num)
{
	if (p->next == NULL)
	{
		p = head;
		count++;
		continue;
	}
	p = p->next;
	count++;
}
ura_111 вне форума Ответить с цитированием
Старый 15.02.2017, 20:12   #17
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

head - голова списка (экземпляр).
ura_111 вне форума Ответить с цитированием
Старый 15.02.2017, 20:12   #18
artilun
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 25
По умолчанию

Не совсем понимаю код, допустим num = 3, список состоит из 10 элементов, мы дойдём до третьего и выйдем из цикла
artilun вне форума Ответить с цитированием
Старый 15.02.2017, 20:24   #19
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

18.jpg



Первый шаг уже реализовал... Или не то?
ura_111 вне форума Ответить с цитированием
Старый 15.02.2017, 20:28   #20
artilun
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 25
По умолчанию

то есть: дан список 1->2->3->4->5->6, num=3. Новое начало будет на 4, разрываем связь между 3 и 4, затем присоединяем 1->2->3 в конец. Я правильно Вас понял?
artilun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклический сдвиг элементов списка artilun Помощь студентам 3 12.02.2017 13:15
Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз Nekro95 Помощь студентам 12 07.11.2012 22:31
циклический сдвиг элементов массива Carter Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2011 19:54
Не получается циклический сдвиг элементов списка влево Джиксер Общие вопросы C/C++ 5 02.06.2010 23:38