6.897:
Advanced
Data
Structures
Spring
2007
Lecture
—
Feb
21,
2007
Prof.
Erik
Demaine
1
Overview
In
the
last
lecture
we
worked
in
a
BST
model.
We
discussed
Wilber
lower
bounds
for
BSTs
for
a
particular
access
sequence,
and
developed
Tango
trees
which
achieve
O
(lg lg
n
)competitiveness.
This
is
a
very
promising
result
that
gives
hope
for
existence
of
a
dynamically
optimal
tree.
In
this
lecture
we
discuss
dynamic
trees
that
have
many
applications
such
as
to
Network
Flow
and
Dynamic
Connectivity
problems
in
addition
to
them
being
interesting
theoretically.
This
is
the
beginning
of
our
discussion
of
dynamic
graphs.
We
will
discuss
one
data
structure
called
LinkCut
trees
that
achieves
logarithmic
amortized
time
for
all
operations.
2
Dynamic
Trees
The
dynamic
tree
problem
we
will
discuss
today
is
to
represent
a
forest
of
rooted
trees
whose
each
node
has
an
arbitrary
number
of
unordered
child
nodes.
The
data
structure
has
to
support
the
following
operations:
MAKE
TREE()
–
Returns
a
new
vertex
in
a
singleton
tree.
This
operation
allows
us
to
add
•
elements
and
later
manipulate
them.
•
LINK(v,w)
–
Makes
vertex
v
a
new
child
of
vertex
w
,
i.e.
adds
an
edge
(
v, w
).
In
order
for
the
representation
to
remain
valid
this
operation
assumes
that
v
is
the
root
of
its
tree
and
that
v
and
w
are
nodes
of
distinct
trees.
•
CUT(v)
–
Deletes
the
edge
between
vertex
v
and
its
parent,
parent
(
v
)
where
v
is
not
the
root.
•
FIND
ROOT(v)
–
Returns
the
root
of
the
tree
that
vertex
v
is
a
node
of.
This
operation
is
interesting
because
path
to
root
can
be
very
long.
The
operation
can
be
used
to
determine
if
two
nodes
u
and
v
are
connected.
It
is
also
possible
to
augment
the
data
structure
to
return
statistics
about
the
path
from
the
v
to
the
root
of
its
tree,
such
as
the
sum
or
minimum
of
the
weights
of
each
edge.
This
augmentation
is
necessary
in
ﬂow
algorithms.
3
LinkCut
Trees
LinkCut
Trees
were
developed
by
Sleator
and
Tarjan
[1]
[2].
They
achieve
logarithmic
amortized
cost
per
operation
for
all
operations.
LinkCut
Trees
are
similar
to
Tango
trees
in
that
they
1
16
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Documentuse
the
notions
of
preferred
child
and
preferred
path.
The
also
use
splay
trees
for
the
internal
representation.
3.1
Defnition
oF
LinkCut
Trees
We
say
a
vertex
has
been
accessed
if
was
passed
to
any
of
the
operations
from
above
as
an
argument.
We
call
represented
trees
the
abstract
trees
that
the
data
structure
represents.
We
are
not
allowed
to
change
the
represented
tree
and
it
can
be
unbalanced.
The
represented
tree
is
split
into
paths
(in
the
data
structure
representation).
The
preferred
child
of
node
v
is
equal
to
its
i
th
child
if
the
last
access
within
v
’s
subtree
was
in
the
i
th
subtree
and
it
is
equal
to
null
if
the
last
access
within
v
’s
subtree
was
to
v
itself
or
if
there
were
no
accesses
to
v
’s
subtree
at
all.
A
preferred
edge
is
an
edge
between
a
preferred
child
and
its
parent.
A
preferred
path
is
a
maximal
continuous
path
of
preferred
edges
in
a
tree,
or
a
single
This is the end of the preview.
Sign up
to
access the rest of the document.
 Spring '10
 ErikDemaine
 Graph Theory, Data Structures, Splay tree, Daniel Sleator, Link/cut tree, auxiliary tree

Click to edit the document details