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

Односвязный список. Поменять местами элементы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Возврат значения по ссылке http://www.cyberforum.ru/cpp-beginners/thread310451.html
Долго гуглил, но что-то так и не понял. Почему слева от знака = может использоваться только функция, возвращающая ссылку?
C++ Осуществить движение окружности по дуге Условие: Осуществить такое движение,при котором окружность движется по-другой окружности,Оставаясь внутри ее. 1е) Я понимаю что таких как мы много и как мы достали нормальных людей 2е) Я не хочу орать :"помогите иначе мне хана и тп." Я понимаю что таких же о5 тут много 3е) Я понимаю что программисты коих здесь я думаю обитает не мало ленивые люди( не как сам человек,а как рабочий) ибо все... http://www.cyberforum.ru/cpp-beginners/thread310445.html
C++ Посмотрите код пожалуйста...
#include <stdio.h> #include <stdlib.h> int main() { int n,*b,i,k; double x; float **M;// двухмерная матрциа
C++ Построение многоугольника
На клетчатой бумаге нарисован многоугольник, стороны которого по линиям сетки.В каждую клеточку многоугольника вписано число равное количеству сторон данной клетки, которые принадлежат сторонам многоугольника.Многоугольник стерается,и на листке остаются только числа.Восстановить многоугольник.
C++ Массив http://www.cyberforum.ru/cpp-beginners/thread310423.html
Подскажите, что не так делаю: #include <iostream> using namespace std; int main () { int n, m, i, j, k, n1, m1; float mas_U;
C++ Найти поддерево, для всех вершин которого выполняется правило Здравствуйте. Есть задание: Найти поддерево, для всех вершин которого выполняется правило, если – (i) – k – ый сын (j), то (i) не имеет k – ого сына Подскажите пожалуйста как представить i,j,k О_о Лучше графически :) подробнее

Показать сообщение отдельно
VladSharikov
 Аватар для VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
01.06.2011, 22:05     Односвязный список. Поменять местами элементы
Привет. Есть односвязный список. Например: 5 элементов, поменять местами 2 и 3
Как поменять местами элементы p1 и p2.
Что я сделал?
нашел позиции этих p1 и p2 через циклы.
Как поменять? Я думаю, что нужно поменять указатели, как конкретно их поменять?
Что на что должно указывать? Напишите кодом, пожалуйста.

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
void list::change(int first,int last) {
 
    nodes *p1 = new nodes;
    nodes *p2 = new nodes;
    nodes *tmp_pos = new nodes;
 
    p1 = begin;
    p2 = begin;
    tmp_pos = begin;
 
    for(int i = 1; i < first; i++) {
        p2 = p2->next;
    }
    for(int i = 1; i < last; i++) {
        p1 = p1->next;
    }
    p2->data.vivod(); printf("\n");
    p1->data.vivod(); printf("\n");
 
 
    tmp_pos->next = p1->next;
    p1->next = p2->next;
    p2->next = tmp_pos->next;
 
    delete tmp_pos;
}
мой нерабочий вариант

Добавлено через 2 минуты
Нерабочий почему? потому что запуска такой функции и вывода на экран список не выводится, вернее выводится через *опу!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru