Mercurial > hg > Papers > 2017 > tatsuki-master
changeset 13:7acd7d5afeb6
commit
author | tatsuki |
---|---|
date | Tue, 07 Feb 2017 18:50:35 +0900 |
parents | 04aa9dcd29c9 |
children | e4da23b04260 |
files | differential.tex figures/RedBlackTreeDelete1.graffle figures/RedBlackTreeDelete1.pdf figures/RedBlackTreeDelete2.graffle figures/RedBlackTreeDelete2.pdf figures/RedBlackTreeDelete3.graffle figures/RedBlackTreeDelete3.pdf figures/RedBlackTreeDelete4.graffle figures/RedBlackTreeDelete4.pdf figures/RedBlackTreeDelete5.graffle figures/RedBlackTreeDelete5.pdf indexupdate.tex introduciton.tex jungleUpdatePoint.tex master_paper.pdf master_paper.tex redBlackTree.tex result/createIndex.xbb result/createListTree.xbb result/createRedBlackTreeAndDefaultTreeTime.xbb result/treemap/find.pdf result/treemap/insert.pdf |
diffstat | 22 files changed, 244 insertions(+), 156 deletions(-) [+] |
line wrap: on
line diff
--- a/differential.tex Mon Feb 06 02:41:48 2017 +0900 +++ b/differential.tex Tue Feb 07 18:50:35 2017 +0900 @@ -1,5 +1,5 @@ \chapter{Differential Jungle Tree} -Jungleの木の変更の手間は木の形によって異なる。 +Jungleの木の変更の手間は形によって異なる。 特に線形の木は、変更の手間がO(n)となってしまう。 線形の木をO(1)で変更するために、Jungleは、ルートノードを追加していくPushPopの機能を持つ。 しかし、PushPopはルートノードを追加していくため、図\ref{fig:pushpop}のようにノードの並びが逆順になってしまう。 @@ -18,8 +18,9 @@ \section{Differential Tree Context} -Jungleの木はTreeContextというオブジェクトに自身の木の情報を保持する。 -表\ref{TreeContext}にTreeContextが保持するデータを記述する。 +Jungleの木はTreeContextというオブジェクトに自身の木の情報を保持している(表\ref{TreeContext})。 + +\newpage \begin{table}[htb] \begin{center} @@ -40,7 +41,6 @@ Differential Jungle Treeでは、現在の版の木構造の末尾ノード保持することが可能な Differential Tree Context 作成した。 -\newpage \section{Differential Jungle Treeの作成} Differential Jungle Treeを作成するためにJungleに、{\tt createNewDifferentialTree(String treeName) }を実装した。 @@ -66,6 +66,8 @@ ソースコード\ref{src:nameFail}では、4行目で Differentail Jungle Tree の名前が、3行目で生成した Default Jungle Tree の名前と重複するため、木の生成に失敗する。 +\newpage + \section{末尾ノードを使用した木の編集} Differential Jungle Treeの木の編集は、Differential Jungle Tree Editorを使用して行う。 %Differential Jungle Tree Editorは、Jungle Tree Editor インターフェースを実装しているため、使い方はDefault Jungle Tree Editorと同じである。 @@ -85,7 +87,6 @@ \end{center} \end{figure} -\newpage \begin{enumerate} \item 木から{\tt getJungleTreeEditor}でEditorを取得する。(このとき取得するEditorはSub Treeを持つ)。 \item SubTreeに対して{\tt addNewChild(<-1,0>)}を実行し、ノードの追加を行う。
--- a/figures/RedBlackTreeDelete1.graffle Mon Feb 06 02:41:48 2017 +0900 +++ b/figures/RedBlackTreeDelete1.graffle Tue Feb 07 18:50:35 2017 +0900 @@ -763,9 +763,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -858,9 +859,10 @@ <key>Align</key> <integer>0</integer> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \f0\fs24 \cf0 C}</string> @@ -964,9 +966,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -1121,9 +1124,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -1285,9 +1289,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -1412,12 +1417,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -1490,9 +1496,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -1568,9 +1575,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -1871,9 +1879,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 H}</string> @@ -2595,9 +2604,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -2690,9 +2700,10 @@ <key>Align</key> <integer>0</integer> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \f0\fs24 \cf0 C}</string> @@ -2796,9 +2807,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -2953,9 +2965,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -3013,8 +3026,6 @@ <key>VerticalPad</key> <integer>0</integer> </dict> - <key>TextRelativeArea</key> - <string>{{0.10000000000000001, 0.14999999999999999}, {0.80000000000000004, 0.69999999999999996}}</string> </dict> <dict> <key>Class</key> @@ -3119,9 +3130,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -3246,12 +3258,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -3324,9 +3337,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -3402,9 +3416,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -3705,9 +3720,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 H}</string> @@ -3719,7 +3735,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{296.01693725585903, 38.503227233886719}, {170, 46}}</string> + <string>{{296.01693725585903, 38.503227233886719}, {170, 47}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FitText</key> @@ -3787,9 +3803,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf0 balance Tree }</string> @@ -3872,7 +3889,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2017-01-19 16:55:21 +0000</string> + <string>2017-02-07 09:15:13 +0000</string> <key>Modifier</key> <string>sister_clown</string> <key>NotesVisible</key>
--- a/figures/RedBlackTreeDelete2.graffle Mon Feb 06 02:41:48 2017 +0900 +++ b/figures/RedBlackTreeDelete2.graffle Tue Feb 07 18:50:35 2017 +0900 @@ -477,9 +477,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -634,9 +635,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -1116,12 +1118,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -1282,9 +1285,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -1409,9 +1413,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -1487,9 +1492,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -1565,9 +1571,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -2514,9 +2521,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -2609,9 +2617,10 @@ <key>Align</key> <integer>0</integer> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \f0\fs24 \cf0 C}</string> @@ -2715,9 +2724,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -2872,9 +2882,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -3036,9 +3047,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -3163,12 +3175,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -3241,9 +3254,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -3319,9 +3333,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -3558,7 +3573,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{372.22454071044888, 39.059394836425781}, {170, 46}}</string> + <string>{{372.22454071044888, 39.059394836425781}, {170, 47}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FitText</key> @@ -3626,9 +3641,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf0 balance Tree }</string> @@ -3711,7 +3727,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2017-01-19 19:23:44 +0000</string> + <string>2017-02-07 09:15:30 +0000</string> <key>Modifier</key> <string>sister_clown</string> <key>NotesVisible</key> @@ -3801,7 +3817,7 @@ <key>SidebarWidth</key> <integer>120</integer> <key>VisibleRegion</key> - <string>{{0, 0}, {950, 783}}</string> + <string>{{0, 0}, {936, 768}}</string> <key>Zoom</key> <real>1</real> <key>ZoomValues</key>
--- a/figures/RedBlackTreeDelete3.graffle Mon Feb 06 02:41:48 2017 +0900 +++ b/figures/RedBlackTreeDelete3.graffle Tue Feb 07 18:50:35 2017 +0900 @@ -763,9 +763,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -858,9 +859,10 @@ <key>Align</key> <integer>0</integer> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \f0\fs24 \cf0 C}</string> @@ -964,9 +966,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -1121,9 +1124,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -1285,9 +1289,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -1412,12 +1417,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -1490,9 +1496,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -1568,9 +1575,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -2517,9 +2525,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -2612,9 +2621,10 @@ <key>Align</key> <integer>0</integer> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \f0\fs24 \cf0 C}</string> @@ -2718,9 +2728,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -2875,9 +2886,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -3039,9 +3051,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -3166,12 +3179,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -3244,9 +3258,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -3322,9 +3337,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -3561,7 +3577,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{361.59132766723599, 39.059394836425781}, {170, 46}}</string> + <string>{{361.59132766723599, 39.059394836425781}, {170, 47}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FitText</key> @@ -3629,9 +3645,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf0 balance Tree }</string> @@ -3714,7 +3731,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2017-01-19 19:50:35 +0000</string> + <string>2017-02-07 09:15:40 +0000</string> <key>Modifier</key> <string>sister_clown</string> <key>NotesVisible</key> @@ -3804,7 +3821,7 @@ <key>SidebarWidth</key> <integer>120</integer> <key>VisibleRegion</key> - <string>{{100, 0}, {908, 783}}</string> + <string>{{95, 0}, {894, 768}}</string> <key>Zoom</key> <real>1</real> <key>ZoomValues</key>
--- a/figures/RedBlackTreeDelete4.graffle Mon Feb 06 02:41:48 2017 +0900 +++ b/figures/RedBlackTreeDelete4.graffle Tue Feb 07 18:50:35 2017 +0900 @@ -314,9 +314,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -374,9 +375,10 @@ <key>Align</key> <integer>0</integer> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \f0\fs24 \cf0 C}</string> @@ -987,9 +989,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -1146,9 +1149,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -1310,9 +1314,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -1437,12 +1442,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -1515,9 +1521,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -1593,9 +1600,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -2542,9 +2550,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -2637,9 +2646,10 @@ <key>Align</key> <integer>0</integer> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural \f0\fs24 \cf0 C}</string> @@ -2743,9 +2753,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -2900,9 +2911,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -3064,9 +3076,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -3191,12 +3204,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -3269,9 +3283,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -3347,9 +3362,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -3586,7 +3602,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{352.53941726684536, 71.059394836425781}, {170, 46}}</string> + <string>{{352.53941726684536, 71.059394836425781}, {170, 47}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FitText</key> @@ -3654,9 +3670,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf0 balance Tree }</string> @@ -3739,7 +3756,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2017-01-19 20:35:49 +0000</string> + <string>2017-02-07 09:15:54 +0000</string> <key>Modifier</key> <string>sister_clown</string> <key>NotesVisible</key> @@ -3815,7 +3832,7 @@ <key>ExpandedCanvases</key> <array/> <key>Frame</key> - <string>{{-0, -0}, {1920, 1177}}</string> + <string>{{4, 0}, {1916, 1177}}</string> <key>ListView</key> <true/> <key>OutlineWidth</key> @@ -3829,7 +3846,7 @@ <key>SidebarWidth</key> <integer>120</integer> <key>VisibleRegion</key> - <string>{{-334, -126}, {1785, 1035}}</string> + <string>{{-332, -126}, {1781, 1035}}</string> <key>Zoom</key> <real>1</real> <key>ZoomValues</key>
--- a/figures/RedBlackTreeDelete5.graffle Mon Feb 06 02:41:48 2017 +0900 +++ b/figures/RedBlackTreeDelete5.graffle Tue Feb 07 18:50:35 2017 +0900 @@ -484,9 +484,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -646,9 +647,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -1128,12 +1130,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -1294,9 +1297,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -1421,15 +1425,14 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> </dict> - <key>TextRelativeArea</key> - <string>{{0, 0}, {1, 1}}</string> <key>Wrap</key> <string>NO</string> </dict> @@ -1499,9 +1502,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -1577,9 +1581,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -1880,9 +1885,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 rep}</string> @@ -2618,9 +2624,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 F}</string> @@ -2812,9 +2819,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 E}</string> @@ -2969,9 +2977,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 C}</string> @@ -3133,9 +3142,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 D}</string> @@ -3260,12 +3270,13 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs48 \cf1 rep}</string> +\f0\fs48 \cf1 del}</string> </dict> <key>TextRelativeArea</key> <string>{{0, 0}, {1, 1}}</string> @@ -3338,9 +3349,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 B}</string> @@ -3416,9 +3428,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf1 A}</string> @@ -3655,7 +3668,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{363.53941726684536, 53.059394836425781}, {170, 46}}</string> + <string>{{363.53941726684536, 53.059394836425781}, {170, 47}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FitText</key> @@ -3723,9 +3736,10 @@ <key>Text</key> <dict> <key>Text</key> - <string>{\rtf1\ansi\ansicpg932\cocoartf1343\cocoasubrtf140 + <string>{\rtf1\ansi\ansicpg932\cocoartf1504\cocoasubrtf810 \cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuPro-W3;} {\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc \f0\fs48 \cf0 balance Tree }</string> @@ -3808,7 +3822,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2017-01-19 20:49:30 +0000</string> + <string>2017-02-07 09:16:06 +0000</string> <key>Modifier</key> <string>sister_clown</string> <key>NotesVisible</key> @@ -3898,7 +3912,7 @@ <key>SidebarWidth</key> <integer>120</integer> <key>VisibleRegion</key> - <string>{{16, 0}, {918, 779}}</string> + <string>{{16, 0}, {904, 764}}</string> <key>Zoom</key> <real>1</real> <key>ZoomValues</key>
--- a/indexupdate.tex Mon Feb 06 02:41:48 2017 +0900 +++ b/indexupdate.tex Tue Feb 07 18:50:35 2017 +0900 @@ -5,7 +5,7 @@ \section{差分 Updateの実装} Indexの差分 Updateを行うためには、編集を行ったノードを覚えておく必要がある。 -なので、Jungleの木に編集を行ったノードをリストに格納する。 +Jungleの木に編集を行ったノードをリストに格納する。 そして、Commit時にリストにあるノードと、そのノードまでの経路にあるノードに対して、IndexをのUpdateを行う。 Indexの Update は、ノードの削除とノードの挿入の2つのプロセスで行われる。 @@ -41,8 +41,8 @@ \section{Full Update との使い分け} Indexの差分Updateは、不要なノードの削除と新しく木に追加されたノードの挿入を行っているため、1ノードに対する処理は Full Updateより大きい。 -そのため、少ない編集後の Commit は、差分Updateの方が高速に行えるが、多くの編集を行った後の Commitだと、Full Updateの方が高速に動作する。 -なので、木の編集回数によって、Indexの更新方法を変更する必要がある。 - +少ない回数編集を行った後の Commit は、差分Updateの方が高速に行えるが、多くの編集を行った後の Commitだと、Full Updateの方が高速に動作する可能性がある。 +そのため、Commit 前の、木の編集回数によって、Indexの更新方法を変更したほうが高速に Update を行える可能性がある。 +これに関しての検証は、性能測定の章に記述する。 \newpage
--- a/introduciton.tex Mon Feb 06 02:41:48 2017 +0900 +++ b/introduciton.tex Tue Feb 07 18:50:35 2017 +0900 @@ -12,11 +12,9 @@ プログラムは、この木を内部のデータ構造として直接取り扱うことができるので、読み出し時にデータベースに問い合わせる必要がない。 Jungleは分散構成も可能である。 -%Jungleは、データの読み込みは高速に行える反面、木の変更の手間は木の形に依存しており、最悪の場合O(n)になってしまうという面があった。 Jungleは、読み込みは高速に行える反面、書き込みは木の形に依存しており、最悪の場合O(n)となってしまう。 また、Indexの構築も大幅なネックとなっていた。 -そこで、本研究では、Jungleの木の構築・編集の改善を行う。 -そのために、今までの汎用的な木ではなく、特定の形の木を格納することに特化した木を実装し、Indexの更新等にも改善を行った。 +そこで、本研究では、Jungleの木の構築・編集機能の改善を行う。 その後、実際にJungleを使用したアプリケーションを開発・運用する。
--- a/jungleUpdatePoint.tex Mon Feb 06 02:41:48 2017 +0900 +++ b/jungleUpdatePoint.tex Tue Feb 07 18:50:35 2017 +0900 @@ -6,8 +6,8 @@ しかし、Functional Javaは、処理が重く、実用的な性能ではなかったため、非破壊の TreeMap の実装を新しく行った。 \section{Indexの差分 Update} -Jungleの木は、Indexの更新をCommit時に Full Updateで行っている。 -そのため、Commitを行うたび、O(n)のIndexのUpdateが入り、木の編集時大きなネックとなっていた。 +Jungleは、Indexの更新をCommit時に Full Updateで行っている。 +そのため、Commitを行うたび、O(n)のIndexのUpdateが入り、木の編集時大きなネックとなっている。 Index の更新処理を高速に行えるようにするため、 前の木との差分だけIndexを更新する機能を Jungle に追加した。 @@ -29,10 +29,6 @@ Indexに使用する属性名が1種類で、木構造の形がデータを表現していない場合、Jungle Tree自身をIndexとしたほうが、効率的に木構造を構築できる。 そこで、Red Black Treeの性質を組み込んだRed Black Jungle Treeの実装を行った。 Red Black Jungle Tree は、生成時に木のバランスを取る際に使用する属性名(Balance Key)を指定する。 -そして、ノードの挿入・削除時、Balance Keyを用いて木のバランスを取る・ +そして、ノードの挿入・削除時、Balance Keyを用いて木のバランスを取る。 -Red Black Jungle Tree の木の編集は、Red Black Jungle Tree Editorを用いて行う。 -ノードの挿入時に、木のバランスを取るための属性値が必要になるため、ノードと値の挿入を同時に行うAPIを実装した。 - -Red Black Jungle Treeの検索は、Balance Key を用いた検索は極めて高速に行える。 -しかし用いなかった場合は、全探索を行うためO(n)になってしまう。 +木の探索に関してはBalanceKeyを用いた場合N(Logn)、そうでない場合はO(n)で行える。
--- a/master_paper.tex Mon Feb 06 02:41:48 2017 +0900 +++ b/master_paper.tex Tue Feb 07 18:50:35 2017 +0900 @@ -7,7 +7,7 @@ \usepackage{comment} %\input{dummy.tex} %% font -\jtitle{タイトル} +\jtitle{} \etitle{英語タイトル} \year{平成28年度} \affiliation{\center%
--- a/redBlackTree.tex Mon Feb 06 02:41:48 2017 +0900 +++ b/redBlackTree.tex Tue Feb 07 18:50:35 2017 +0900 @@ -1,8 +1,10 @@ \chapter{非破壊 TreeMap の実装} JungleのIndexは、Functional Javaの非破壊 TreeMap を用いて実装を行っている。 しかし、Functional Java の TreeMap は、木の変更の手間が大きい、並列実行時処理速度が落ちるなど、実用的な性能を持っていなかった。 -なので、Jungleで使用するための非破壊 TreeMap を作成した。 -TreeMapは、Red Black Treeのアルゴリズムに基づき実装した。 +そのため、Jungle の性能も、TreeMap部分がネックとなっていた。 + +その問題を解決するため、Jungleで使用する非破壊 TreeMap を作成した。 +TreeMapは、Red Black Treeのアルゴリズム用いる。 \section{Red Black Tree} Red Black Treeは二分探索木の一つで、以下の条件を満たした木のことである。 @@ -19,7 +21,7 @@ この条件により、Red Black Treeはデータの検索、削除、探索をO(log n)で行える。 \section{非破壊 TreeMap の定義} -非破壊 TreeMapは、Javaのジェネリクスを用いて、{\tt TreeMap<K,V>Key}と定義されており、 +非破壊 TreeMapは、Javaのジェネリクスを用いて、{\tt TreeMap<K,V>Key}と定義される。 TreeMapを作る際に、K,Vに任意の型を記述することで、 KeyとValueで使用する型を設定できる。 ソースコード\ref{src:TreeMapExample}に、 Key を String 型・ Value を ByteBuffer 型で定義するサンプルコードを記述する。 @@ -47,8 +49,13 @@ \end{center} \end{table} -非破壊 TreeMapは、put・deleteを行うと編集後の新しい TreeMap を返すため、新しい TreeMap で受ける必要がある。 -この時返ってくるTreeMapと、編集前のTreeMapは別オブジェクトである。 +非破壊 TreeMapは、put・deleteを行うと編集後の新しい TreeMap を返すため、新しい TreeMap で受ける必要がある(ソースコード\ref{src:TreeMapEditExample})。 +この時返ってくる {\tt newMap}と、編集前の {\tt map} は別オブジェクトである。 + +\begin{lstlisting}[frame=lrbt,numbers=left,label=src:TreeMapEditExample,caption=TreeMapの編集例] +TreeMap<String,String> map = new TreeMap<>(); +TreeMap<String,String> newMap = map.put("key","value"); +\end{lstlisting} \section{非破壊 Red Black Treeへのデータの挿入} 非破壊 Red Black Treeへのデータの挿入は、以下の手順で行われる。 @@ -78,7 +85,7 @@ \item 挿入したノードinsの親ノードBが黒。 \end{enumerate} -バランス時、上記の条件を満たしている場合、Red Black Treeの条件は崩れないため、そのまま赤色でノードを挿入して問題はない。%(図\ref{fig:RedBlackTreeInsert1})。 +バランス時、上記の条件を満たしている場合、Red Black Treeの条件は崩れないため、赤色でノードを挿入して問題はない。%(図\ref{fig:RedBlackTreeInsert1})。 %\begin{figure}[htpb] %\begin{center} @@ -162,30 +169,30 @@ \item 片側に部分木(子ノード)がある場合、ノードを削除した後、部分木のルートを昇格させる。 \item 両側に部分木(子ノード)がある場合は、左部分木の最大の値を持つノードの値を取得し、削除を行うノードと同じ色に変更した後、置換する。 \item 置換したノードを削除する(ここで削除させるノードは部分木の最大値であるため、子ノードは1つ以下、つまり削除の手順4・5どちらかの手順で削除できる)。 -\item 削除したノードから、木のバランスを取りながら、ルートまでの経路の複製を行う。その際Defaul Jungle Treeと同じように、変更が加えられないノードへは参照を行い過去の木と最大限共有を行う。 +\item 削除したノードから、木のバランスを取りながら、ルートまでの経路の複製を行う。その際、変更が加えられないノードへは参照を行い過去の木と最大限共有を行う。 \end{enumerate} RedBlackTreeのバランスは、ノード削除時の状態によって、次の6パターンに分けられる。 -また。これ以降削除対象のノードと置換したノードを、ノードrepと記述する。 +また。これ以降削除したノードを、ノードdelと記述する。 \section{データ削除時のバランス ケース1} \begin{enumerate} -\item ノードrepがルート。 +\item ノードdelがルート。 \end{enumerate} 上記の条件を満たしている場合、全ての経路の黒ノード数が1つ減った状態で条件が成立しバランスは終了する。 \section{データ削除時のバランス ケース2} \begin{enumerate} -\item ノードrepが黒。 +\item ノードdelが黒。 \item ノードA・B・C・D・E・Fが黒。 \end{enumerate} バランス時、上記の条件を満たしている場合、ノードBを赤に変える(図\ref{fig:RedBlackTreeDelete1})。 そうすることで、ノードB・E・F以下の黒ノードの階層が減って、ノードA以下の木のバランスが回復する。 -その後、Aを新たなノードrepとして木のバランスを行う。 +その後、Aを新たなノードdelとして木のバランスを行う。 このバランスは最悪の場合ルートまで続き、ケース2で終了する。 \begin{figure}[htpb] @@ -197,16 +204,17 @@ \end{figure} +\newpage \section{データ削除時のバランス ケース3} \begin{enumerate} -\item ノードrepが黒。 +\item ノードdelが黒。 \item ノードA・C・D・E・Fが黒 \item ノードBが赤。 \end{enumerate} 上記の条件を満たしている場合、ノードAを中心に外側に回転、その後ノードAを赤に、ノードBを黒に変更する(図\ref{fig:RedBlackTreeDelete2})。 -その後、ノードrepを基準に再び木のバランスを行う。 -この時のバランスは、図\ref{fig:RedBlackTreeDelete2}における、ノードEの子供の色に応じてケース5・6・7のどれかに帰着する。 +その後、ノードdelを基準に再び木のバランスを行う。 +この時のバランスは、図\ref{fig:RedBlackTreeDelete2}における、ノードEの子供の色に応じてケース4・5・6のどれかに帰着する。 \begin{figure}[htpb] \begin{center} @@ -216,9 +224,11 @@ \end{center} \end{figure} +\newpage + \section{データ削除時のバランス ケース4} \begin{enumerate} -\item ノードrepが黒。 +\item ノードdelが黒。 \item ノードB・C・D・E・Fが黒 \item ノードAが赤。 \end{enumerate} @@ -234,9 +244,10 @@ \end{figure} +\newpage \section{データ削除時のバランス ケース5} \begin{enumerate} -\item ノードrepが黒。 +\item ノードdelが黒。 \item ノードB・C・D・Fが黒。 \item ノードEの色が赤。 \end{enumerate} @@ -253,14 +264,15 @@ \end{figure} +\newpage \section{データ削除時のバランス ケース6} \begin{enumerate} -\item ノードrepが黒。 +\item ノードdelが黒。 \item ノードB・C・Dが黒。 \item ノードFの色が赤。 \end{enumerate} -上記の条件を満たしている場合、ノードAを中心にノードrep側に回転、その後、ノードAとノードBの色を交換し、ノードFを黒にする(図\ref{fig:RedBlackTreeDelete5})。 +上記の条件を満たしている場合、ノードAを中心にノードdel側に回転、その後、ノードAとノードBの色を交換し、ノードFを黒にする(図\ref{fig:RedBlackTreeDelete5})。 そうすることで、ノードE・Fの黒の深さを変えること無く、ノードrepの黒の深さを1増やせるため、木のバランスが取れる。 \begin{figure}[htpb]
--- a/result/createIndex.xbb Mon Feb 06 02:41:48 2017 +0900 +++ b/result/createIndex.xbb Tue Feb 07 18:50:35 2017 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 792.000000 612.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Sun Feb 5 23:25:32 2017 +%%CreationDate: Mon Feb 6 02:56:13 2017
--- a/result/createListTree.xbb Mon Feb 06 02:41:48 2017 +0900 +++ b/result/createListTree.xbb Tue Feb 07 18:50:35 2017 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 792.000000 612.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Sun Feb 5 23:25:32 2017 +%%CreationDate: Mon Feb 6 02:56:13 2017
--- a/result/createRedBlackTreeAndDefaultTreeTime.xbb Mon Feb 06 02:41:48 2017 +0900 +++ b/result/createRedBlackTreeAndDefaultTreeTime.xbb Tue Feb 07 18:50:35 2017 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 792.000000 612.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Sun Feb 5 23:25:32 2017 +%%CreationDate: Mon Feb 6 02:56:13 2017