![]() |
|
|
|
|
#1
|
|||
|
|||
|
Кусок кода удаления элемента из середины. С++ Builder 6.0 не "видит" выделенные жирным Next и Prev. В дебаггере показывает "????".
Код:
Node *item; ... item->Prev->Next = item->Next; //предыдущий элемент указывает на след item->Next->Prev = item->Prev; ... |
|
#2
|
||||
|
||||
|
typedef ноды дай мне. похоже, нужно явное приведение типа в данной ситуации...
|
|
#3
|
||||
|
||||
|
***немного из размышлений****
по идее item->Prev также указатель и, чтобы достучаться до его поля Next, его тоже нужно привести к типу Node, т.е. (не очень помню синтаксис С++) что-то на подобие :Код:
Node *item; Node *tmp; ... tmp=(Node)item->Prev; tmp->Next = item->Next; //предыдущий элемент указывает на след tmp=(Node)item->Next; tmp->Prev = item->Prev; |
|
#4
|
||||
|
||||
|
Код:
struct Node
{
Node* Prev;
Node* Next;
void* Data;
}
Node* item;
item->Next->Next->Next->Next->Next->Next->Next->Next->Next->Next = 0;Пруф из моего недавнего кода: Код:
struct NickListElem
{
NickListElem *Next;
int Length;
char Nick[10];
}; |
|
#5
|
|||
|
|||
|
Код:
struct Node //Структура являющаяся звеном списка
{
int num;
Node *Next, *Prev; //Указатели на адреса следующего и предыдущего элементов списка
};Ни один ваш вариант не работает |