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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Возврат значения по ссылке http://www.cyberforum.ru/cpp-beginners/thread310451.html
Долго гуглил, но что-то так и не понял. Почему слева от знака = может использоваться только функция, возвращающая ссылку?
C++ Осуществить движение окружности по дуге Условие: Осуществить такое движение,при котором окружность движется по-другой окружности,Оставаясь внутри ее. 1е) Я понимаю что таких как мы много и как мы достали нормальных людей 2е) Я не хочу... 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
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824

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

01.06.2011, 22:05. Просмотров 7800. Ответов 28
Метки (Все метки)

Привет. Есть односвязный список. Например: 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 минуты
Нерабочий почему? потому что запуска такой функции и вывода на экран список не выводится, вернее выводится через *опу!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru