Отказ от ответственности: Я не знаком с Касандрой или Риаком.Это относится к общей «базе данных» (не обязательно реляционной, распределенной и т. Д.).
Я предполагаю, что вы можете хранить и получать доступ к «парам ключ-значение» (т. Е. К парезначения (a, b), где a - ключ к значению b).
Я также буду использовать эту запись для представления некоторого обобщенного «объекта» (структура данных, объект, словарь, ..): Person[name: "John Doe" age: 49].
Реализация связанного списка
Предполагается, что у вас есть пара ключ-значение (ключ, значение) и объект Object [fields: values...], связанный список может быть реализован в базе данных путем
- добавления «следующего» поля к объекту путем определения Object [fields: values ... next] ИЛИ
- создание нового «объекта-держателя», определенного как (ключ, значение) = Holder [Object [fields: values ...] next]
Это также может быть идеей для храненияпервое значение связанного списка в некоторой специальной паре ключ-значение, например (first, ...).
В любом случае можно реализовать всесписок рукописных данных в базе данных.
При извлечении значения из пары ключ-значение, чтобы получить следующее значение, просто найдите поле «next» в Holder или Object, чтобы перейти к списку до следующего значения,и т. д.
Пример алгоритма связанного списка
Поиск:
def find(first, node):
if node = first[next]:
return first[next]
else:
find(first[next], node)
Поиск предшественника:
def find_pred(first, node):
if node = first[next]:
return first
else:
find_pred(first[next], node)
Вставкаперед конкретным узлом:
def insert_at_front(node, inserted_node):
find_pred(node)[next] = inserted_node
inserted_node[next] = node
Реализация очереди
В этом случае очередь может быть просто связанным списком, в котором два конкретных значения автоматически известны (вероятно, хранятся в базе данных):
- первый элемент (или заголовок), который может быть сохранен с помощью специальной пары ключ-значение (head, ...)
- последний элемент (или хвост), который можетхраниться в специальной паре ключ-значение (tail, ...)
Примечание: эти алгоритмы намеренно упрощены;они не на каком-либо конкретном языке, не обрабатывают исключения, конец списка и т. д. и не должны использоваться для бла, бла, бла .... и т. д.