сопоставление списков, динамическая память |
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
|
Гость |
Картинка бы не помешала...
Кстати, ты не могла бы привести также и определения типов (всю программу не надо, только сами описания типов, используемые в твоей реализации)? |
мисс_граффити |
Сообщение
#3
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
Вот структура примерно...
Чисто информационные поля не вырисовывала, только систему связей (что на что ссылается). То есть, например, в первый переход входит 2 дуги: из первой и второй позиции, а исходит всего одна - во вторую позицию. Во второй переход входит дуга из второй позиции, а исходит в первую и третью и т.д. Типы: Цитата Posref = ^Position; //Тип: указатель на позицию Lref = ^Leader; // Тип: указатель на заголовочный узел перехода Tref = ^Trailer; //Тип: указатель на дугу //Описание типа заголовочного узла перехода Leader=Record Key : Integer; // Имя заголовочного узла Trail1 : Tref; //Указатель на список входящих дуг Trail2 : Tref; //Указатель на список исходящих дуг Next : Lref // Указатель на следующий узел в списке заголовочных узлов end; //Описание типа дугового узла Trailer = Record Id : Posref; //Указатель на ту позицию, в/из которой входит/выходит дуга Count : Integer; //Количество дуг, связывающих эту позицию с переходом Next : Tref //Указатель на следующую дугу end; //Описание типа позиции Position = Record Key : Integer; Next : Posref; end; Эскизы прикрепленных изображений -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Текстовая версия | 19.04.2024 10:40 |