Mercurial > hg > Papers > 2013 > shoshi-master-2013 > paper
comparison chapter3.tex @ 8:b75c564064a8 default tip
fix undefined reference , multiply defined references
author | Shoshi TAMAKI |
---|---|
date | Thu, 21 Feb 2013 22:53:20 +0900 |
parents | 44a95cddab8a |
children |
comparison
equal
deleted
inserted
replaced
7:44a95cddab8a | 8:b75c564064a8 |
---|---|
28 jungle.createTreeメソッドを利用して木構造を作成する. もし, すでに木構造が存在している場合は, nullが返される. | 28 jungle.createTreeメソッドを利用して木構造を作成する. もし, すでに木構造が存在している場合は, nullが返される. |
29 | 29 |
30 \subsubsection{木と木を構成するノード} | 30 \subsubsection{木と木を構成するノード} |
31 データベースオブジェクトを作成し, 木構造とルートノードを取得するためには以下のように記述する. | 31 データベースオブジェクトを作成し, 木構造とルートノードを取得するためには以下のように記述する. |
32 | 32 |
33 \begin{lstlisting}[frame=lrbt,label=src:create_jungle,caption=木とノードの取得,numbers=left] | 33 \begin{lstlisting}[frame=lrbt,label=src:get_jungle,caption=木とノードの取得,numbers=left] |
34 /* データベースの取得まで省略 */ | 34 /* データベースの取得まで省略 */ |
35 JungleTree tree = jungle.getTreeByName("your tree name here"); | 35 JungleTree tree = jungle.getTreeByName("your tree name here"); |
36 | 36 |
37 Node root = tree.getRootNode(); | 37 Node root = tree.getRootNode(); |
38 | 38 |
128 \subsubsection{木のトラバース} | 128 \subsubsection{木のトラバース} |
129 木をトラバースするためには, Traverserを利用する. Traverserは木を対象にせずNodeを対象に取るため, 木の任意の部分から走査を始めることが可能である. | 129 木をトラバースするためには, Traverserを利用する. Traverserは木を対象にせずNodeを対象に取るため, 木の任意の部分から走査を始めることが可能である. |
130 Traverserは目的のノードまでに通ったノードをすべて列挙するため, JungleTreeEditorはNodePathとTraverserを用いて編集対象のノードまでの全てのノードを取得している. | 130 Traverserは目的のノードまでに通ったノードをすべて列挙するため, JungleTreeEditorはNodePathとTraverserを用いて編集対象のノードまでの全てのノードを取得している. |
131 以下のコードはNodePathを用いて目的のノードまでをトラバースするコードである. | 131 以下のコードはNodePathを用いて目的のノードまでをトラバースするコードである. |
132 | 132 |
133 \begin{lstlisting}[frame=lrbt,label=src:nodeeditor,caption=NodePathを用いた木のトラバース,numbers=left] | 133 \begin{lstlisting}[frame=lrbt,label=src:tree_traverse,caption=NodePathを用いた木のトラバース,numbers=left] |
134 /* データベースの取得まで省略 */ | 134 /* データベースの取得まで省略 */ |
135 JungleTree tree = jungle.getTreeByName("your tree name here"); | 135 JungleTree tree = jungle.getTreeByName("your tree name here"); |
136 | 136 |
137 DefaultNodePath path = new DefaultNodePath(); | 137 DefaultNodePath path = new DefaultNodePath(); |
138 path = path.add(1).add(2).add(3); | 138 path = path.add(1).add(2).add(3); |
398 \subsubsection{TreeEditor} | 398 \subsubsection{TreeEditor} |
399 TreeEditorは, TreeNodeで構成される木を編集するための操作が定義されているインターフェイスである. | 399 TreeEditorは, TreeNodeで構成される木を編集するための操作が定義されているインターフェイスである. |
400 NodePathと呼ばれるルートNodeから編集対象のNodeまでのパスとNodeEditorを引数として受け取り, 非破壊的に編集する. | 400 NodePathと呼ばれるルートNodeから編集対象のNodeまでのパスとNodeEditorを引数として受け取り, 非破壊的に編集する. |
401 TreeEditorの定義を以下に示す. | 401 TreeEditorの定義を以下に示す. |
402 | 402 |
403 \begin{lstlisting}[frame=lrbt,label=src:definition_of_treenodechildren,caption=TreeNodeChildrenの定義,numbers=left] | 403 \begin{lstlisting}[frame=lrbt,label=src:definition_of_treeeditor,caption=TreeEditorの定義,numbers=left] |
404 public interface TreeEditor { | 404 public interface TreeEditor { |
405 public <T extends TreeNode<T>> Either<Error,T> edit(T root,NodePath,NodeEditor editor); | 405 public <T extends TreeNode<T>> Either<Error,T> edit(T root,NodePath,NodeEditor editor); |
406 } | 406 } |
407 \end{lstlisting} | 407 \end{lstlisting} |
408 | 408 |
457 public Result result(); | 457 public Result result(); |
458 public Evaluator evaluator(); | 458 public Evaluator evaluator(); |
459 } | 459 } |
460 \end{lstlisting} | 460 \end{lstlisting} |
461 | 461 |
462 Evaluationのresultメソッドは, このNodeの評価結果を表すEnum型のクラスResultを返す. 表\ref{tab:evalaution_result}に評価の種類を示す. | 462 Evaluationのresultメソッドは, このNodeの評価結果を表すEnum型のクラスResultを返す. 表\ref{tab:evaluation_result}に評価の種類を示す. |
463 | 463 |
464 \begin{table}[!htbp] | 464 \begin{table}[!htbp] |
465 \caption{Evalautionの結果一覧} | 465 \caption{Evalautionの結果一覧} |
466 \label{tab:evaluation_result} | 466 \label{tab:evaluation_result} |
467 \begin{center} | 467 \begin{center} |