Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поменять местами два элемента в списке 
:(
    Опции темы
кщтеук31
Дата 2.3.2013, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.3.2013

Репутация: нет
Всего: нет



помогите доделать программу! Не могу сделать смену двух чисел местами в списке.
Код

#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;

struct TNode {
int value;
TNode* pnext;
};

 void add2list(TNode **pphead, int val)
{
TNode **pp = pphead, *pnew;
while(*pp)
{
if(val < (*pp)->value)
break;
else
pp = &((*pp)->pnext);
}
pnew = new TNode;
pnew->value = val;
pnew->pnext = *pp;
*pp = pnew;
}

 void print(TNode *phead)
{
TNode* p = phead;
while(p)
{
cout << p->value << ' ';
p = p->pnext;
}
cout << endl;
}
 void deleteList(TNode *phead)
{
if(phead)
{
deleteList(phead->pnext);
if(phead)
delete phead;
}
}
 void add2list2(TNode **pphead, int val){
 int rt1,rt2;
 TNode *m, *n;
 
cout << "Elements 1:" << endl;
cin>>rt1;
cout << "Elements 2" << endl;
cin>>rt2;
for (int i=0;i<3;i++){

не знаю как написать

}
 }
int main()
{
int res1;
TNode *phead = 0;
srand(time(0));
for(int i = 0; i < 10; i++)
add2list(&phead,res1=rand() % 100);
cout << "Elements of the list:" << endl;
print(phead);
deleteList(phead);
add2list2(&phead,res1);
return 0;

}

PM MAIL   Вверх
feodorv
Дата 2.3.2013, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(кщтеук31 @  2.3.2013,  20:55 Найти цитируемый пост)
Не могу сделать смену двух чисел местами в списке.

Задача не понятна. У Вас список отсортированный, если произвольным образом менять значения элементов в списке, он перестаёт быть отсортированным. Что конкретно нужно?

Цитата(кщтеук31 @  2.3.2013,  20:55 Найти цитируемый пост)
не знаю как написать

Ну хоть пример того, что нужно сделать, приведите...

Цитата(кщтеук31 @  2.3.2013,  20:55 Найти цитируемый пост)
deleteList(phead);
add2list2(&phead,res1);
return 0;

Вы удаляете список до того, как вызываете add2list2 (с недействительным phead)...


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
кщтеук31
Дата 2.3.2013, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.3.2013

Репутация: нет
Всего: нет



Цитата(feodorv @  2.3.2013,  20:33 Найти цитируемый пост)
ы удаляете список до того, как вызываете add2list2 (с недействительным phead)... 

а на счет алгоритма смены элементов местами не подскажешь?
PM MAIL   Вверх
baldina
Дата 4.3.2013, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



можно, не меняя местами узлы, просто обменять значения.
Код

TNode *node1, *node2;
...
int temp=node1->value;
node1->value=node2->value;
node2->value=temp;
или std::swap()

Добавлено через 1 минуту и 13 секунд
отформатируйте свой код. глаза сломать можно..
PM MAIL   Вверх
bsa
Дата 4.3.2013, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



кщтеук31, почитай оформление кода
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.