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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 13:00   #1
Джиксер
Новичок
Джуниор
 
Регистрация: 02.06.2010
Сообщений: 4
По умолчанию Не получается циклический сдвиг элементов списка влево

Не могу сделать циклический сдвиг элементов списка влево...Кто знает как прошу помочь.. Ниже код для ввода и вывода элементов списка...
Код:
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int main()
{
    struct lst
    {
           int a;
           lst *next; //указатель на след элемент
    } *first, *q, *p;
    
    int n,s,m;
    
    cout<<"Vvedine kolichestvo elementov -> ";
    cin>>n;
    first = new lst; //Выделение диманической памяти под элемент
    cout<<"Vvedite znachenie -> ";
    cin>>first -> a;
    s = first -> a;
    first -> next = NULL;
    q = first;
    
   for(int i=1;i<n;i++)
    {  
       p = new lst;
       cout<<"Vvedite znachenie -> ";
       cin>>p -> a;
       
            
       p -> next = NULL;
       q -> next = p;
       q = p;
    }
            q = first;
    for(int i=0;i<n;i++)
    {
       cout<<q -> a<<" ";
       q = q -> next;
    }
    cout<<endl;
   
   
        cout<< "Vvedite koli4estvo pizicii: "<< endl;
        cin>>  m;
        for........
 
 
 
 
 
 
 
 
        q=first;
            for(int i=0;i<n;i++)
    {
       cout<<q -> a<<" ";
       q = q -> next;
    }
                cout<<endl;
        system ("PAUSE");
        return(0);
}
Джиксер вне форума Ответить с цитированием
Старый 02.06.2010, 13:34   #2
Джиксер
Новичок
Джуниор
 
Регистрация: 02.06.2010
Сообщений: 4
По умолчанию

Попробовал что-то сделать....Программа закрывается после ввода количества позиций. В чём ошибка?
Код:
#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
    struct lst
    {
           int a;
           lst *next; //указатель на след элемент
    } *first, *q, *p;
    
    int n,s,m;
    
    cout<<"Vvedine kolichestvo elementov -> ";
    cin>>n;
    first = new lst; //Выделение диманической памяти под элемент
    cout<<"Vvedite znachenie -> ";
    cin>>first -> a;
    s = first -> a;
    first -> next = NULL;
    q = first;
    
   for(int i=1;i<n;i++)
    {  
       p = new lst;
       cout<<"Vvedite znachenie -> ";
       cin>>p -> a;
       
            
       p -> next = NULL;
       q -> next = p;
       q = p;
    }
	    q = first;
    for(int i=0;i<n;i++)
    {
       cout<<q -> a<<" ";
       q = q -> next;
    }
    cout<<endl;
   
   
	cout<< "Vvedite koli4estvo pizicii: "<< endl;
	cin>>  m;
	for (int i=0; i<m; i++) {
		q=first;
	for (int j=0; j<n; j++) {
		q=q->next;

		
	}
		p=first;
		q->next=p;
		//first=NULL;
	}
	q=first;
	    for(int i=0;i<n;i++)
    {
       cout<<q -> a<<" ";
       q = q -> next;
    }
		cout<<endl;
	system ("PAUSE");
	return(0);
}
Джиксер вне форума Ответить с цитированием
Старый 02.06.2010, 16:03   #3
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Код:
listItem *newLast = first;
first = first->next;
last->next = newLast;
newLast->next = 0;
Вот и всё
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 02.06.2010, 16:50   #4
Джиксер
Новичок
Джуниор
 
Регистрация: 02.06.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от ozo Посмотреть сообщение
Код:
listItem *newLast = first;
first = first->next;
last->next = newLast;
newLast->next = 0;
Вот и всё
Ам....что-то я не соображу никак как именно цикл этот оформить )
Джиксер вне форума Ответить с цитированием
Старый 02.06.2010, 17:11   #5
Джиксер
Новичок
Джуниор
 
Регистрация: 02.06.2010
Сообщений: 4
По умолчанию

Если не трудно распиши пожалуйста подробнее как, что и куда ) Пожалуйста
Джиксер вне форума Ответить с цитированием
Старый 02.06.2010, 23:38   #6
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Это не цикл :
first - первый элемент списка
last - последний элемент списка
К.О. отдыхает.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы и циклический сдвиг элементов CHESTER_ROB Общие вопросы C/C++ 5 23.11.2010 13:46
C++.циклический сдвиг элементов квадратной матрицы arsalan Помощь студентам 1 11.05.2010 08:08
Циклический сдвиг в С rand8154 Общие вопросы C/C++ 1 14.11.2009 01:49
Циклический сдвиг Mish92(21-09) Помощь студентам 0 07.11.2009 21:59