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

Как поменять местами элементы односвязного списка ? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ функция length http://www.cyberforum.ru/cpp-beginners/thread889742.html
#include <vcl.h> #pragma hdrstop #include <stdio.h> #include <string.h> //--------------------------------------------------------------------------- int kolvo_skobok(char s); int k,k1,n; n=length(s); k1=0; k=0;
C++ преобразование кода есть программа, написанная в visual studio, необходимо преобразовать под BDS 2006 буду благодарен, если поможете #include "stdafx.h" #include <iostream> using namespace std; void Perebor(int**A,int M, int N, int**B, int c); void Min_column(int**A, int N, int M, int* Sum, int**B,int c); void Max_row(int**A, int MCN, int M, int N, int**B, int c); void Build_cover(int**A,int**B,int c,... http://www.cyberforum.ru/cpp-beginners/thread889741.html
Как считать файл с табличкой? C++
Добрый вечер! Подскажите пожалуйста : у меня есть файл в формате txt, в котором находится табличка (с числами) 15*5. Его нужно считать! Можно ли его считать с помощью fgets? Или есть еще какой-нибудь способ? Если кто-нибудь поможет, буду очень благодарна!! Заранее спасибо!
C++ Дописать класс "Коллекция"
Помогите дописать класс коллекция, который должен иметь методы для изменения количества объектов: добавление в конец,вставка, усечение, удаление из середины. При обращении к элементам с несуществующем индексом или при некорректном изменении количества должно выбрасывать исключение(необязательно) Вот код к котрому нужен класс #include "stdafx.h" #include <iostream> using namespace std; class...
C++ дан текстовый файл. получить строку в которой наименьшее число знаков препинания http://www.cyberforum.ru/cpp-beginners/thread889729.html
Здравствуйте. Дан текстовый файл. Получить строку в которой наименьшее число знаков препинания. Как реализовать сие чудо? С файлами ни разу не работал, так что не имею представления. Может кто помочь? Буду благодарен!
C++ Функции ввода, просмотра, определения столбца Напишите программу, проверяя корректность введения размера массива. Дан массив, который содержит м строк и н столбиков . Оформить в виде отдельных функций введение, просмотр и определение номеров столбиков, которые равняются первому введенному числу массива. подробнее

Показать сообщение отдельно
Serega_1
Сообщений: n/a
03.06.2013, 20:59     Как поменять местами элементы односвязного списка ?
Здравствуйте! Обращаюсь к Вам за помощью . Начал учить списки в с++, односвязные , и стоит задача создать список ,вывести его на экран , а потом поменять два каких либо элемента (любых , не имеет значения) местами( вместе с информацией о элементе списка ) и вывести новый список на экран . Пока только есть ввод элементов и вывод на экран , но как поменять местами элементы списка - я ума не приложу (.
Помогите , пожалуйста , с этим вопросом , очень нужна помощь , в интернете искал что-то похожее , но , увы-ничего не получается , не понятно .(

Заранее огромное спасибо за Вашу помощь !

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
struct People
{   char Name [20];
    int Age;
    int Year;
};
struct TList
{   People info;         //інформаційне поле
    TList *next;     //адреса наступного елемента
};
class CList 
{ TList *head;   //адреса голови списку
  public:
  CList()
  { head =new TList;//выделяем память голове списка
    head=NULL;
  };
 
  void ReadConsole()    //ввод данных с клавиатуры
 {   int i=0;
     char nam[20];//для новых введённых элементов
     int a;
     int y;
     TList *pv,*pn;//указатели на новые элементы 
     int flag;
     cout<<"\n Введите элементы списка "<<endl;
     cout<<"\n Введите имя  :";
     cin>>nam;
     cout<<"\n Введите возраст :";
     cin>>a;
     cout<<"\n Введите год рождения :";
     cin>>y;
     head=Head(nam,a,y);
     cout<<"\n Продолжать ?Для продолжения введите 1"<<endl;
     cout<<"\n";
     cin>>flag;
     if (flag==1){
                    cout<<"\n Введите элементы списка "<<endl;
                    cout<<"\n Введите имя :";
                    cin>>nam;
                    cout<<"\n Введите возраст :";
                    cin>>a;
                    cout<<"\n Введите год рождения :";
                    cin>>y;
                    pv=Head(nam,a,b);//выделяем память для второго эл. списка 
                    head->next=pv;//записываеи адресс 2-го эл. в предыдущий элемент 
     do{
            cout<<"\n Продолжать ?Для продолжения введите 1"<<endl;
            cout<<"\n";
            cin>>flag;
            if(flag==1){
                            cout<<"\n Введите элементы списка "<<endl;
                            cout<<"\n Введите имя операционной системы :";
                            cin>>nam;
                            cout<<"\n Введите розрядность операционной системы :";
                            cin>>roz;
                            cout<<"\n Введите минимальный объём памяти :";
                            cin>>op;
                            pn=Head(nam,a,b);
                         pv->next=pn;//для следущего элемента
                       }
     else break;
     pv=pn;//для новых эл.
       }while (1);
    }
};
  
  void WriteMonitor()//вывод данных на экран
 {  TList *pv,*pn;
    if(head !=NULL){   //если есть адресс
                        int i=2;
                        WrM(head);
                        pv=head->next;
                        while (pv!=NULL)//до конца списка 
                       {    
                            WrM(pv);
                            pn=pv->next;
                            pv=pn;
                        }
                     }
    else cout<<"\n Список пуст";
 }; 
 
 
  TList *Head(char nam[20],int a, int y)//функция для размещения элемента списка в памяти 
  {  TList *pv =new TList;
     for(int j=0;j<20;j++)
     pv->info.Name[j]=nam[j];
     pv->info.Age=a;
     pv->info.Year=y;
     pv->next=NULL;
     return pv;
  };
 
  void WrM(TList *pv)                     //вывод на экран
  {  cout<<pv->info.Name<<" ";
     cout<<pv->info.Age<<" ";
     cout<<pv->info.Year<<endl;
  };
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru