暑期SMALE魔鬼训练day4
上午:
定义无向网络
答:Definition 11.4 A undirected net is a tuple G = ( V , w ) G = (\mathbf{V}, w) G=(V,w), where V \mathbf{V} V is the set of nodes, and w : V × V → R w: \mathbf{V} \times \mathbf{V} \to \mathbb{R} w:V×V→R is the weight function where w ( v i , v j ) w ( v_i , v_j ) w(vi,vj) is the weight of the edge ( v i , v j ) (v_i, v_j) (vi,vj), and ∀ ⟨ v i , v j ⟩ ∈ V × V , s . t . w ( v i , v j ) = w ( v j , v i ) \forall \langle v_i, v_j \rangle \in \mathbf{V} \times \mathbf{V}, s.t. w ( v_i , v_j ) = w ( v_j , v_i ) ∀⟨vi,vj⟩∈V×V,s.t.w(vi,vj)=w(vj,vi).
- 自己画一棵树, 将其元组各部分写出来 (特别是函数 p p p).
- 针对该树, 将代码中的变量值写出来 (特别是 parent 数组).
T
=
{
V
,
r
,
p
}
T = \{\mathbf{V}, r, p\}
T={V,r,p}
节点集合
V
=
{
1
,
2
,
3
,
4
,
5
,
6
}
\mathbf{V} = \{1, 2, 3, 4, 5, 6\}
V={1,2,3,4,5,6}
根节点
r
=
1
r = 1
r=1
p
(
1
)
=
ϕ
p(1) = \phi
p(1)=ϕ
p
(
2
)
=
1
p(2) = 1
p(2)=1
p
(
3
)
=
1
p(3) = 1
p(3)=1
p
(
4
)
=
1
p(4) = 1
p(4)=1
p
(
5
)
=
2
p(5) = 2
p(5)=2
p
(
6
)
=
2
p(6) = 2
p(6)=2
代码:
public class Tree {
/**
* 节点数. 表示节点 v_0 至 v_{n-1}.
*/
int n;
/**
* 根节点. 0 至 n-1.
*/
int root;
/**
* 父节点.
*/
int[] parent;
/**
* 构造一棵树, 第一个节点为根节点, 其余节点均为其直接子节点, 也均为叶节点.
*/
public Tree(int paraN) {
n = paraN;
parent = new int[n];
parent[0] = -1; // -1 即 \phi
}// Of the constructor
}//Of class Tree
对应的变量值如下:
n = 6;
root = 0;
parent = {-1, 0, 0, 0, 1, 1}
晚上:
画一棵三叉树, 并写出它的 child 数组.
按照本贴风格, 重新定义树. 提示: 还是应该定义 parent 函数,
字母表里面只有一个元素. 根据图、树、m mm-叉树的学习, 谈谈你对元组的理解.
三叉树:
child数组:
[
1
2
3
−
1
−
1
−
1
4
5
6
−
1
−
1
−
1
−
1
−
1
−
1
−
1
−
1
−
1
−
1
−
1
−
1
]
\left[\begin{matrix} 1 & 2 & 3 \\ -1 & -1 & -1\\ 4 & 5 & 6\\ -1 & -1 & -1\\ -1 & -1 & -1\\ -1 & -1 & -1\\ -1 & -1 & -1\\ \end{matrix}\right]
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡1−14−1−1−1−12−15−1−1−1−13−16−1−1−1−1⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
重新定义树:
Let
ϕ
\phi
ϕ be the empty node, a tree is a quadruple
T
=
(
V
,
r
,
Σ
,
p
)
T=(\mathbf{V},r,\Sigma,p)
T=(V,r,Σ,p) where
V
≠
∅
\mathbf{V} \neq \emptyset
V=∅is the set of nodes;
r
∈
V
r\in \mathbf{V}
r∈V is the root node;
Σ
=
{
0
}
\Sigma=\{0\}
Σ={0} is the alphabet;
p
:
V
→
V
∪
{
ϕ
}
p:\mathbf{V}\to\mathbf{V}\cup\{\phi\}
p:V→V∪{ϕ} is the parent mapping satisfying;
p
(
r
)
=
ϕ
p(r)=\phi
p(r)=ϕ;
∀
v
∈
V
,
∃
1
n
≥
0
\forall v\in \mathbf{V},\exists1n\geq 0
∀v∈V,∃1n≥0and
1
s
∈
Σ
1s\in \Sigma
1s∈Σ, st.
p
(
n
)
(
v
,
s
)
=
r
p^{(n)}(v,s)=r
p(n)(v,s)=r;
对于元组的理解:
元组就是不同类型数据以及数据之间的关系的组合体