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

Поменять элементы списка местами - C++

Восстановить пароль Регистрация
 
_Лёша_
 Аватар для _Лёша_
376 / 366 / 20
Регистрация: 08.02.2011
Сообщений: 1,072
07.10.2012, 18:27     Поменять элементы списка местами #1
Помогите написать функцию, нужно поменять элементы списка местами, не получается
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
105
106
#include <vcl.h>
#pragma hdrstop
  #include <iostream.h>
#include <tchar.h>
//---------------------------------------------------------------------------
 
 
typedef struct Spisok
{
int chislo;
Spisok * link;
}aList;
 
 aList * head = NULL;
aList* Add(aList *head, int data);
    bool swap(int i,int j) ;
void printall(aList*head);
    int summa( aList*head)  ;
#pragma argsused
 
int _tmain(int argc, _TCHAR* argv[])
{
int N = 0; int d;
cout<<"Vvedite razmer spiska";
cout<<endl;
cin>>N;
for (int i = 0; i<N;i++)
{cin >> d; head = Add(head,d);}
  cout<<"Summa elementov spiska  "<<summa(head)<<endl  ;
 
  int i = NULL; int j = NULL;
  cout<<"VVegite i"<<endl; cin>>i;
  cout<<"VVegite j"<<endl; cin>>j;
 cout<<"Success = "<<swap(i,j)<<endl;
   printall(head);
cin>>"";
    return 0;
}
 
 
int summa (aList*head) {
   int sum = 0;
  aList *t = head;
  while (t){
  sum  = sum + t->chislo;
  t = t->link;
  }
  return sum;
}
 
 
 
aList* Add( aList *head, int data){
bool success;
aList *t = new aList;
  t->chislo = data;    t->link=0;
  if(head) t->link = head;
  head =t;
  return head;
  }
 
 
    bool swap(int i,int j){    //Обмен
   bool success;
aList* first;
aList* second;
int k;
k = 0;
    for (first = head; first != NULL; first = first->link)
        if (k++ == i)
            break;
 
    // nahodim vtoroj elemnt
    k = 0;
    for (second = head; second != NULL; second = second->link)
        if (k++ == j)
            break;
 
    if (second == NULL || first == NULL)
     {success=false;
     return success;   }
    else
{
 
  // obmen
aList* t;
    t =first;
   first = second;
   second = t;
success = true;
     return  success;
    }    }
 
 
 
 
 
       void printall(aList*head){
        aList *t = head;
  while (t){
  cout << t->chislo<<" ";
  t = t->link;
  }
    }
 
//-------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 18:27     Поменять элементы списка местами
Посмотрите здесь:

C++ Поменять местами 1ый и последний элемент списка C++
C++ Можно ли поменять местами значения структур связного динамического списка целиком?
Поменять местами первый и последний элементы. Все единичные элементы массива заменить нулями C++
C++ Поменять местами два элемента двусвязного списка
C++ Поменять местами первый и последний элементы непустого списка
C++ Создать динамический список, поменять местами последний и первый элементы списка, предпоследний и второй и т.д.
Поменять местами два элемента односвязного списка C++
C++ Поменять местами элементы главной и побочной диагонали матрицы и найти столбцы, элементы которых убывают

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru