Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++ Двусвязный список

88K
11 марта 2013 года
кщтеук31
3 / / 11.03.2013
нужно поменять в списке два элемента местами! помогите пожалуйста доработать программу

структура
 
Код:
struct TNode {
int value;
TNode* pnext, *prev;
};
вот у меня функция которая строит список

Код:
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->prev = pnew->pnext;
pnew->pnext=*pp;
*pp = pnew;

}
функ. для печати

Код:
void print(TNode *phead)
{
TNode* p = phead;

while(p)
{
cout << p->value << ' ';
p = p->pnext;
}
cout << endl;
}

Код:
int main()
{
TNode *phead = 0;
TNode *phead1 = 0;
srand(time(0));
int chislo[10]= {1,2,3,4,5,6,7,8,9,10};
for( int i = 0; i < 10; ++i){
add2list(&phead,chislo[i]);
}

cout << "Elements of the list:" << endl;
print(phead);
for( int i = 0; i < 10; ++i){
add2list2(&phead1,chislo[i], 3, 4);
}
print(phead1);
deleteList(phead);
return 0;
}
где

 
Код:
for( int i = 0; i < 10; ++i){
add2list2(&phead1,chislo[i], 3, 4);
}
мои попытки сделать функцию которая, при введение двух элементов в списке они менялись местами, но не получается у меня сделать это( Помогите доделать эту программу ....
414
11 марта 2013 года
CassandraDied
763 / / 24.05.2012
А где функция, которая не работает?
86K
12 марта 2013 года
DIAMON
11 / / 27.02.2013
Можно конечно сделать все проще, поменять местами только значения "value", ну а если хочется разобраться с указателями смотри вложение.
Прикрепленные файлы:
2 Кб
Загрузок: 997
88K
13 марта 2013 года
кщтеук31
3 / / 11.03.2013
Цитата: DIAMON
Можно конечно сделать все проще, поменять местами только значения "value", ну а если хочется разобраться с указателями смотри вложение.


программа работает не правильно(

392
21 марта 2013 года
cronya
421 / / 03.01.2009
Автору, у вас там реализован не понятно какой список, у двухсвязного списка есть начало есть конец а у вас только указатель на начало а дальше вы тупо листаете от начала(почитайте в конце концов гугл или вики, там написано как это должно выглядеть) , зачем используете двойные указатели??
Цитата:
Можно конечно сделать все проще, поменять местами только значения "value", ну а если хочется разобраться с указателями смотри вложение.


ога, в структуре будет 50 членов, будете для всех менять значения :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог