IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> сопоставление списков, динамическая память
сообщение
Сообщение #1


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Что надо сделать: (домучать все те же сети Петри)
Есть списки:
список позиций (содержится инфа: номер (имя) позиции, количество фишек в ней, указатель на след. позицию)
список переходов (номер перехода, указатель на список входящих дуг, указатель на список исходящих)
"навешанные" на него списки дуг (указатель на позицию, которая этой дугой связана с переходом, кратность дуг - для мультиграфа).
соответственно, этот указатель надо вполне конкретно задать.

Что я делаю (работает, но как-то мне такой способ не особо нравится):
1) создаю список позиций
2) начинаю создавать список переходов. для каждого перехода сначала соответствующие списки дуг, а потом их "прикрепляю".
сложность с заданием указателя на позицию в списке.
у меня есть указатель на первую позицию. указатель на вторую получается как first^.next
на третью - (first^.next)^.next
ну, или в цикле... но по сути то же самое.
это как-то оптимизируется?
(если запутано объяснила, могу картинкой нарисовать схему).
спасибо.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Значит, вопрос в следующем: ты работаешь именно со структурами, или с объектами? Если можно использовать ООП, то все будет гораздо проще реализовать: делаем некий обобщенный список TList, который хранит любую информацию в виде TItem - абстрактного узла (в нем же, кстати, можно сделать и то, что ты выделила как проблему:

Function TList.GetPtr(pos: Integer): PItem;
, возвращающая указатель на нужный элемент списка...
), а уже потом - 3 производных класса от того самого абстрактного узла: TLeaderItem, TTrailerItem и TPositionItem, которые будут хранить то, что именно тебе нужно...

Полиморфизм, так сказать smile.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 9:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name