сопоставление списков, динамическая память |
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 ну, или в цикле... но по сути то же самое. это как-то оптимизируется? (если запутано объяснила, могу картинкой нарисовать схему). спасибо. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#2
|
Гость |
Значит, вопрос в следующем: ты работаешь именно со структурами, или с объектами? Если можно использовать ООП, то все будет гораздо проще реализовать: делаем некий обобщенный список TList, который хранит любую информацию в виде TItem - абстрактного узла (в нем же, кстати, можно сделать и то, что ты выделила как проблему:
Function TList.GetPtr(pos: Integer): PItem;, возвращающая указатель на нужный элемент списка... ), а уже потом - 3 производных класса от того самого абстрактного узла: TLeaderItem, TTrailerItem и TPositionItem, которые будут хранить то, что именно тебе нужно... Полиморфизм, так сказать |
Текстовая версия | 29.03.2024 9:15 |