C++ Двусвязный список
структура
Код:
struct TNode {
int value;
TNode* pnext, *prev;
};
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;
}
{
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;
}
{
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;
}
{
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);
}
add2list2(&phead1,chislo[i], 3, 4);
}
А где функция, которая не работает?
Можно конечно сделать все проще, поменять местами только значения "value", ну а если хочется разобраться с указателями смотри вложение.
Цитата: DIAMON
Можно конечно сделать все проще, поменять местами только значения "value", ну а если хочется разобраться с указателями смотри вложение.
программа работает не правильно(
Можно конечно сделать все проще, поменять местами только значения "value", ну а если хочется разобраться с указателями смотри вложение.
ога, в структуре будет 50 членов, будете для всех менять значения :)