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

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

Войти
Регистрация
Восстановить пароль
 
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
#1

Метод списка swap, который меняет информацию двух узлов местами - C++

28.12.2011, 10:33. Просмотров 1088. Ответов 5
Метки нет (Все метки)

Добавьте в класс списков метод Swap(int i, int j), меняющую
информацию звеньев списка с номерами i и j

прошу,помогите,пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2011, 10:33     Метод списка swap, который меняет информацию двух узлов местами
Посмотрите здесь:

Класс "Строка" содержащий метод, который меняет местами первый и последний символы строки - C++
Написать программу чтобы первый и последний символы строки менялись местами. На экран выводился оригинал и измененная строка. Все это с...

Написать функцию, которая меняет местами значения двух целых - C++
Нужен рабочий код по решению задачи в С++ : «Напишите функцию которая меняет местами значения двух целых. В качестве типа параметров...

Описать функцию которая меняет местами значения двух параметров - C++
Описать функцию которая меняет местами значения двух параметров. Используя эту функция поменять местами значение переменных a и b введенных...

Написать программу, которая меняет местами значения двух переменных с использованием дополнительной переменной. - C++
3. Написать программу, которая меняет местами значения двух переменных с использованием дополнительной переменной. Пункт 5.16 Правил:...

Создать класс "Дерево" и метод, который выводит сумму узлов дерева - C++
Привет ребят.выручайте. Создать класс "Дерево" и метод, который выводит сумму узлов дерева

Swap для двунаправленного списка - C++
Поменять просто значения узлов, не интересно. Я запутываюсь с ссылками. элементы могут быть заглавными или последними. struct node ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
28.12.2011, 10:34     Метод списка swap, который меняет информацию двух узлов местами #2
besbyblik, а где сам класс?
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
28.12.2011, 10:38  [ТС]     Метод списка swap, который меняет информацию двух узлов местами #3
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
Листинг 1.3. Класс списков List
// Продолжение файла List.h
class List{ // Класс списков
   Node *first; // Указатель на первое звено
   Node *last; // Указатель на последнее звено
public:
List( ) // Конструктор по умолчанию 
{ first = 0; last = 0; } // создает пустой список 
~List( ); // Деструктор
bool Empty( ) const // Проверка, не пуст ли список
{ return (first = = 0); }
T& Front( ){ return first->d; } // Ссылка на первый элемент
void Push_Front(T Val); // Вставить новое звено в начало списка
void Push_Back(T Val); // Вставить новое звено в конец списка 
T Pop_Front( ); // Удаление первого звена
size_t Size( ); // Количество звеньев списка
class Iterator{ // Класс итераторов списка
Node* curr; // Указатель на текущее звено списка
public:
Iterator(Node *pn = 0) // Конструктор создает итератор
{ curr = pn; } // по указателю pn на звено списка
Iterator(Iterator& p) // Конструктор копирования
{ curr = p.curr; }
Node& operator*( ) // Доступ к текущему звену
{ return *curr; }
Node* operator->( ) // Указатель на текущее звено списка
{ return curr;  }
Iterator& operator++( ) // Префиксный инкремент
{ // Используется в виде  ++p
curr = curr->next; // Возвращает итератор на 
return *this; // следующее звено списка
}
Iterator operator++(int) // Постфиксный инкремент
{  // Используется в виде  p++
Iterator tmp = *this; // tmp – копия текущего итератора
curr = curr->next; // Изменение текущего итератора
return tmp; // Возвращение предыдущего значения итератора
}
bool operator= =(Iterator p) // Сравнение итераторов на равенство
{ return curr = = p.curr; }
bool operator!=(Iterator p) // Сравнение итераторов на неравенство
{ return curr != p.curr; }
}; // Конец объявления класса Iterator
Iterator Begin( ) // Получение итератора 
{ return Iterator(first); } // на первое звено списка
Iterator End( ) // Получение итератора на звено списка, 
{ return Iterator(0); } // следующее за последним звеном
Iterator InsertAfter(Iterator p, T val); // Вставка звена после итератора
void EraseAfter(Iterator p); // Удаление звена после итератора p
};
void PrintList(List& L, char delimiter = ' '); // Вывод списка
#endif
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
28.12.2011, 21:12     Метод списка swap, который меняет информацию двух узлов местами #4
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
#include <algorithm>
//....
 
void Swap(int i, int j)
{
    // находим i-ый элемент
    Node* p1 = first;
    while(i > 0)
    {
        p1 = p1->next;
        --i;
    }
 
    // находим j-ый элемент
    Node* p2 = first;
    while(j > 0)
    {
        p2 = p2->next;
        --j;
    }
 
    // меняем данные двух звеньев местами
    std::swap(p1->d, p2->d);
}
идея думаю понятна.
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
28.12.2011, 21:15  [ТС]     Метод списка swap, который меняет информацию двух узлов местами #5
rangerx, а можно прям на пальцах, вообще к концу дня ничего не догоняю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2011, 22:47     Метод списка swap, который меняет информацию двух узлов местами
Еще ссылки по теме:

Swap() для двух массивов - C++
Всем привет! В одном уроке приводится пример использования swap для обмена элементами двух массивов: int a = { 1, 2, 3 }; int b = {...

Массив: Описать функцию swap(A,B), меняющую местами максимальные элементы матриц А и В. - C++
Надо исправить программу чтобы заработала. У самой уже ничего не получается=(( Описать функцию swap(A,B), меняющую местами максимальные...

Функция swap перестановки значений двух переменных для данных разных типов. Используйте template - C++
не могу решить ( честно говоря вообще не понимаю его ) ((((( Напишите функцию swap перестановки значений двух переменных для данных...

Программа которая меняет местами значение вещественных переменных а и в - C++
Программа которая меняет местами значение вещественных переменных а и в. Помогите пожалуйста!!))

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

Написать программу которая меняет местами элементы массива - C++
Уважаемые програмисты помогите решить задачи 1,Написать программу которая меняет местами элементы массива относительно его середины...


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

Или воспользуйтесь поиском по форуму:
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
28.12.2011, 22:47     Метод списка swap, который меняет информацию двух узлов местами #6
Цитата Сообщение от besbyblik Посмотреть сообщение
rangerx, а можно прям на пальцах, вообще к концу дня ничего не догоняю
Это и есть "на пальцах"
Yandex
Объявления
28.12.2011, 22:47     Метод списка swap, который меняет информацию двух узлов местами
Ответ Создать тему
Опции темы

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