Я делаю двойную ссылку, в которой узел сначала вставлен в список ссылок, и каждый узел содержит три свойства: question_id(int)
, Skip_logic(Boolean)
и nextnode(int)
. Теперь, если верно значение skip_logic
, узел проверяет следующий номер Q_id и переходит к этому узлу с конкретным идентификатором. Вот пример.Список ссылок в hashmap java
-------- <--- ---------- <---- --------- <----- ---------
| Node1 | ----> | Node 2 | -----> | Node 3 | -----> | Node 4 |
-------- ---------- --------- ---------
Теперь поток подобен этому после вставки. Теперь, если узел 1 содержит skip_logic=true
. Он проверяет значение nextnode. Скажем, например, это 4, поток становится таким.
-------- ---------- <---- --------- ---------
| Node1 | <---- | Node 2 | -----> | Node 3 | -----> | Node 4 |
-------- ---------- --------- ---------
^ ^
| |
------------------------------------------------------------
Теперь предположит, что, например, пользователь хочет, чтобы перейти от узла 1 к узлу 2. Пользователь снова должен сначала найти узел с этим конкретным вопросом идентификатором из всего списка. Теперь это не стоит дорого в этом scenerio, но если нам нужно перейти от узла 1 к узлу 1000, это потребует большой стоимости поиска, и ссылка сломана, и вы создали ссылку также и добавили еще один указатель, который содержит ссылку на оба пути, но стоимость поиска по-прежнему существует. Я реализовал эту часть, но стоимость поиска - это то, чего я хочу избежать. Я собираюсь сохранить связанный список в hashmap, чтобы, если пользователь хочет добраться до определенного узла, он может просто ввести узел, и он перенесет его на определенный узел. Но проблема в том, что мне нужно подключить узлы внутри хэш-карты с другими узлами, и я думаю, что потребуется еще немного памяти. Итак, любые идеи, как я должен это делать, и если этот подход в порядке, и я должен пойти с ним? И нет, это не домашнее задание.
У вас есть несколько вверх голосов, поэтому он должен быть мне быть толстым, но я могу» Посмотрите, чего вы пытаетесь достичь. Можем ли мы увидеть некоторые примеры использования этой структуры данных. Как код/код sudo, абзацы сплошного текста не ясны (по крайней мере, для меня). – weston