Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > C/C++ > C/C++
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.09.2012, 22:02
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию Двусвязный список

Кусок кода удаления элемента из середины. С++ Builder 6.0 не "видит" выделенные жирным Next и Prev. В дебаггере показывает "????".

Код:
  Node *item;
  ...
  item->Prev->Next = item->Next; //предыдущий элемент указывает на след
  item->Next->Prev = item->Prev;
  ...
Ответить с цитированием
  #2  
Старый 16.09.2012, 22:43
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

typedef ноды дай мне. похоже, нужно явное приведение типа в данной ситуации...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 16.09.2012, 22:44
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

***немного из размышлений****
по идее item->Prev также указатель и, чтобы достучаться до его поля Next, его тоже нужно привести к типу Node, т.е. (не очень помню синтаксис С++) что-то на подобие :
Код:
Node *item;
Node *tmp;
...
tmp=(Node)item->Prev;
tmp->Next = item->Next; //предыдущий элемент указывает на след

tmp=(Node)item->Next;
tmp->Prev = item->Prev;
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #4  
Старый 17.09.2012, 00:54
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Код:
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];
};
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 17.09.2012, 13:08
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

Код:
struct Node       //Структура являющаяся звеном списка
 {
     int num;
     Node *Next, *Prev; //Указатели на адреса следующего и предыдущего элементов списка
 };

Ни один ваш вариант не работает
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:28.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter