]> mj.ucw.cz Git - saga.git/commitdiff
More ET trees.
authorMartin Mares <mj@ucw.cz>
Thu, 10 Apr 2008 15:59:35 +0000 (17:59 +0200)
committerMartin Mares <mj@ucw.cz>
Thu, 10 Apr 2008 15:59:35 +0000 (17:59 +0200)
dyn.tex

diff --git a/dyn.tex b/dyn.tex
index 59362a671f62e0446e2d50c2f9c533937cce1bfc..bdaf64ee068e87f108affae32887dc2c02c3ab65 100644 (file)
--- a/dyn.tex
+++ b/dyn.tex
@@ -208,13 +208,13 @@ when it is invoked on the root of the tree:
 be used to store auxiliary data associated with the vertex.
 
 \obs
-The ET sequence contains a~vertex of degree~$d$ exactly $d$~times except for the root which
+The ET-sequence contains a~vertex of degree~$d$ exactly $d$~times except for the root which
 occurs $d+1$ times. The whole sequence therefore contains $2n-1$ elements. It indeed describes the
 order vertices on an~Eulerian tour in the tree with all edges doubled. Let us observe what happens
-to the ET sequence when we modify the tree.
+to the ET-sequence when we modify the tree.
 
 When we \em{delete} an~edge $uv$ from the tree~$T$ (let $u$~be the parent of~$v$), the sequence
-$\Eul(T) = AuvBvuC$ (with no~$u$ nor~$v$ in~$B$) splits to two ET sequences $AuC$ and $vBv$.
+$\Eul(T) = AuvBvuC$ (with no~$u$ nor~$v$ in~$B$) splits to two ET-sequences $AuC$ and $vBv$.
 If there was only a~single occurrence of~$v$, it corresponded to a~leaf and thus the second
 sequence should consist of $v$~alone.
 
@@ -222,25 +222,35 @@ sequence should consist of $v$~alone.
 to $wBwCvAw$. If $w$~was a~leaf, the sequence changes from $vAwCv$ to $wCvAw$. If $vw$ was the only
 edge of~$T$, the sequence $vw$ becomes $wv$.
 
-\em{Joining} the roots of two trees by a~new edge makes their ET sequences $vAv$ and~$wBw$
+\em{Joining} the roots of two trees by a~new edge makes their ET-sequences $vAv$ and~$wBw$
 combine to $vAvwBwv$. Again, we have to handle the cases when $v$ or~$w$ has degree~1 separately:
 $v$~and~$wBw$ combine to $vwBwv$, and $v$~with~$w$ makes $vwv$.
 
 If any of the occurrences that we have removed from the sequence was designated, there is always
 a~new occurrence of the same vertex that can stand in its place and inherit the auxiliary data.
 
-The ET trees will represent the ET sequences by $(a,b)$-trees with the parameter~$a$ set upon
+The ET-trees will represent the ET-sequences by $(a,b)$-trees with the parameter~$a$ set upon
 initialization of the structure and with $b=2a$. We know from the standard theorems of $(a,b)$-trees
 (see for example \cite{clrs}) that the depth of a~tree with $n$~leaves is always $\O(\log_a n)$
 and that all basic operations including insertion, deletion, search, splitting and joining the trees
 run in time $\O(a\log_a n)$ in the worst case.
 
-We will use the ET trees to maintain a~spanning forest of the current graph. The auxiliary data of
+We will use the ET-trees to maintain a~spanning forest of the current graph. The auxiliary data of
 each vertex will hold a~list of edges incident with the given vertex, which do not lie in the
 forest. Such edges are usually called the \df{non-tree edges.}
 
-\defnn{Eulerial Tour trees}
-
+\defn
+An~\df{Eulerian Tour tree} is a~data structure that represents a~tree~$T$ and a~set of non-tree
+edges associated with the vertices of the tree. It contains:
+\itemize\ibull
+\:An~$(a,b)$-tree~$Q$ whose leaves (in the usual tree order) correspond to the elements
+       of the ET-sequence $\Eul(T)$. Each two consecutive leaves $u$ and~$v$ are separated
+       by a~unique key stored in an~internal vertex of~$Q$ which is used to represent the
+       edge~$uv$. This way, each edge is stored in both its orientations.
+\:A~mapping $\<dsg>(v)$ which maps each vertex of~$T$ to the leaf of~$Q$ containing its
+       designated occurence.
+\:Mappings $\<edge>_1(e)$ and $\<edge>_2(e)$ that map each edge of~$T$ to one of the keys inside~$Q$ 
+\endlist
 
 
 \endpart