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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строковые массивы, вывод и операции над числами в двумерном массиве http://www.cyberforum.ru/cpp-beginners/thread807993.html
Как задать динамически массив строк (строк должно быть 10, может и статический подойдет?) и как оперировать над числами в двумерном массиве? #include <iostream> #include <string> using namespace...
C++ Списки разъясните Совсем недавно начал изучать списки и всё никак не могу понять, как их реализовывать правильно в си. Собственно код написал ниже, но вот 1). как мне пройти по этому списку чтобы я мог вывести... http://www.cyberforum.ru/cpp-beginners/thread807991.html
C++ определить точки перегиба функции на заданном интервале
x*cos(x))/(1+ pow(x,2) на интервале хочу разобраться по порядку понимаю что нужно считать численное значение функции.значит, алгоритм таков, если правильно рассуждаю: 1 нужно найти первую...
C++ Программа из книги
Помогите с данным кодом - не выводиться результат. Пишу по книге Хортон "Полный курс си++" и пишу в Visual Studio 2010 // Ex2_05.cpp // Calculating how many rolls of wallpaper are required...
C++ Англо русский переводчик http://www.cyberforum.ru/cpp-beginners/thread807981.html
посмотрите плиз,прога перводчик проверяет слова в текстовом файле(словаре),мне нужно дополнить словарь,но прога в текстовый документ вставляет просто какието символы вместо слов,в чем ошибка?? ...
C++ люди добрые! нужно программа инверсная запись чисел, запись из инверсной в обычную помогите сделать программа или датьсходник, можно на с++ или на паскале спасибо вам за раннее огромное!!!!! подробнее

Показать сообщение отдельно
кщтеук34
1 / 1 / 0
Регистрация: 27.02.2013
Сообщений: 70

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

13.03.2013, 23:15. Просмотров 848. Ответов 6
Метки (Все метки)

Помогите доделать функцию замены двух элементов в списке
вот структура
C++
1
2
3
4
struct TNode {
int value;
TNode* pnext;
};
Сама нерабочая функция
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
 void add2list2(TNode **pphead, int val, int A, int B)
{
TNode **pp = pphead, *pnew, *var1, *var2;
 
while(*pp)
{
if(val < (*pp)->value)
break;
else
pp = &((*pp)->pnext);
}
 
pnew = new TNode;
pnew->value = val;
var1 = new TNode;
var2 = new TNode;
 
if(A==(pnew->value=val))
{
var1->value=A;
}
 
if(B==(pnew->value=val))
{
var2->value=B;
 
}
 
pnew->pnext=var1->pnext;
var1->pnext==var2->pnext;
var1->value==var2->value;
var2->pnext=(pnew->pnext=*pp);
*pp=pnew;
}
main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
 
int rt1,rt2;
TNode *phead = 0;
TNode *phead1 = 0;
int ElemeMass[10]={1,2,3,4,5,6,7,8,9,10};
TNode *A, *B;
srand(time(0));
for(int i = 0; i < 10; i++){    
add2list(&phead,ElemeMass[i]);
}
print(phead);
 
for(int i = 0; i < 10; i++){    
add2list2(&phead1,ElemeMass[i], 2 ,4);
}
print(phead1);
deleteList(phead);
return 0;
 
}
на всякий случай оставшийся код
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
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;//dsfsdf
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;
}
}
как нужно доделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru