正しいデータ型を使う〜 配列の操作の場合 〜a= Array.new# 要素の挿入a.push(' 要素 ')# N 番目の要素a[N]a = ''# 要素の挿入a = a << (a.size == 0 ? ' 要素 ' : ', 要素 '# N 番目の要素n = 0s = ''a.each_char do |c|if c == ','return s if n == Nn += 1s = ''elses << cendendreturn s if n == N
7.
正しいデータ型を使う〜 配列の操作の場合 〜a= Array.new# 要素の挿入a.push(' 要素 ')# N 番目の要素a[N]a = ''# 要素の挿入a = a << (a.size == 0 ? ' 要素 ' : ', 要素 '# N 番目の要素n = 0s = ''a.each_char do |c|if c == ','return s if n == Nn += 1s = ''elses << cendendreturn s if n == N
隣接リストモデル●一般グラフと同じように隣接リストを使って表現する––●子ノードが親ノードの ID を持つ根ノードの親はNULL再帰クエリあるいはストアドプロシージャnode_idQ: f の深さはいくつか?WITH RECURSIVE r AS (SELECT 1 AS level, node_id, parent_idFROM TreeWHERE parent_id IS NULLUNION ALLSELECT r.level + 1, t.node_id, t.parent_idFROM r JOIN Tree tON r.node_id = t.parent_id)SELECT * FROM r WHERE node_id = 'f';parent_idaNULLbacadaebfbgchg
入れ子集合モデルlft と rgtによる表現10321465ef97hg8b111213 14c15d16aQ: b の子孫をすべて挙げよSELECT t1.node_id FROM Tree t1 JOIN Tree t2WHERE t2.node_id = 'b'AND t1.lft BETWEEN t2.lft AND t2.rgtnode_idlftrgta116b27c813d1415e34f56g912h1011