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

Swap для двунаправленного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу, которая по дате рождения человека (день, месяц, год в числовой форме) вычисляет, сколько лет, недель и дней прожил человек http://www.cyberforum.ru/cpp-beginners/thread1123712.html
Составить программу, которая по дате рождения человека (день, месяц, год в числовой форме) вычисляет, сколько лет, недель и дней прожил человек по настоящую дату.
C++ Составить программу , которая содержит динамическую информацию о наличие автобусов в парке Составить программу , которая содержит динамическую информацию о наличие автобусов в автобусном парке . Сведения о каждом автобус включают : - номер автобуса ; - фамилия и инициалы водителя ; - номер маршрута . Программа должна обеспечивать : - начальное формирование данных о всех автобусы в парке в виде списка ; - при выезде каждого автобуса из парка вводится номер автобуса , и программа... http://www.cyberforum.ru/cpp-beginners/thread1123687.html
Осуществить сдвиг элементов массива вправо на k позиций C++
Всем привет , помогите пожалуйста решить эту задачу на языке Си 9. Дан целочисленный массив размера N. Осуществить сдвиг вправо на k позиций, где k – сумма четных элементов
C++ Прокомментировать код
Здравствуйте! Пожалуйста, как можно яснее откомментируйте коды программ, очень нужно для понимания, чтобы разобраться.. пожалуйста.. 1 задача #include <iostream> #include <cstdlib> #include <cmath> #include <locale> using namespace std;
C++ Описать класс «матрица». Добавить метод, вычисляющий определитель матрицы http://www.cyberforum.ru/cpp-beginners/thread1123667.html
Описать класс «матрица». Добавить метод, вычисляющий определитель матрицы, чтение из файла и запись в файл. Помогите кто может, хотя бы описать класс и чтение, запись в файл, определитель сам сделаю.
C++ Сортировка массива структур через сортировку массива указателей Ошибка возникает в функции void sort(student **ppStud, int k, char ch). Кто видит ошибку - помогите, пожалуйста. Код программы: #include "stdafx.h" #include <iostream> #include <string.h> #include <time.h> #include <memory.h> #include <memory> подробнее

Показать сообщение отдельно
kupnu4
26 / 26 / 9
Регистрация: 03.05.2013
Сообщений: 71
19.03.2014, 12:42     Swap для двунаправленного списка
попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void swap(pnode &a, pnode &b)
{
     pnode tmp_b = b->next;
     pnode tmp_a = a->next;
     b->next = a->next;
     a->next = tmp_b;
     if(tmp_b)
          tmp_b->pred = a;
     if(tmp_a)
          tmp_a->pred = b;
     tmp_b = b->pred;
     tmp_a = a->pred;
     b->pred = a->pred;
     a->pred = tmp_b;
     if(tmp_b)
          tmp_b->next = a;
     if(tmp_a)
          tmp_a->next = b;
}
длинно и может не очень красиво, но это первое, что пришло в голову. я не проверял рабочесть кода, но думаю это или что-то близкое к нему должно помочь вам.(если уж так сильно хочется менять ссылки). а вообще программист должен быть ленивым и реализовывать тот метод, который быстрее и проще.
 
Текущее время: 02:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru