2021-08-02

0802-1

定义无向网络

An 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 arc ⟨ v i , v j ⟩ \langle v_i,v_j \rangle ⟨vi​,vj​⟩and ⟨ v j , v i ⟩ \langle v_j,v_i \rangle ⟨vj​,vi​⟩.

0802-2

自己画一棵树, 将其元组各部分写出来 (特别是函数 p p p).

2021-08-02
T = ( V , r , p ) T=(\mathbf{V},r,p) T=(V,r,p).
V = { v 1 , v 2 , v 3 , v 4 , v 5 , v 6 } \mathbf{V}=\{v_1,v_2,v_3,v_4,v_5,v_6\} V={v1​,v2​,v3​,v4​,v5​,v6​}.
r = v 1 r=v_1 r=v1​.
p : V → V ∪ { ϕ } p:\mathbf{V} \rightarrow \mathbf{V} \cup \{\phi\} p:V→V∪{ϕ} is the parent mapping satisfying

  • p ( r ) = ϕ p(r)=\phi p(r)=ϕ;
  • ∀ v ∈ V , ∃ 1 n ≥ 0 , s t . p ( n ) ( v ) = r \forall v \in \mathbf{V}, \exist 1 n \ge 0, st. p^{(n)}(v) = r ∀v∈V,∃1n≥0,st.p(n)(v)=r.

针对该树, 将代码中的变量值写出来 (特别是parent数组).

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=1;
  • parent[ ]= { − 1 , 0 , 1 , 1 , 1 , 2 , 4 } \{-1,0,1,1,1,2,4\} {−1,0,1,1,1,2,4}.

0802-3

画一棵三叉树, 并写出它的 child 数组.

以上图为例.
child[ ][ ]= { { 2 , 3 , 4 } , { 5 , − 1 , − 1 } , { − 1 , − 1 , − 1 } , { 6 , − 1 , − 1 } , { − 1 , − 1 , − 1 } , { − 1 , − 1 , − 1 } } \{\{2,3,4\},\{5,-1,-1\},\{-1,-1,-1\},\{6,-1,-1\},\{-1,-1,-1\},\{-1,-1,-1\}\} {{2,3,4},{5,−1,−1},{−1,−1,−1},{6,−1,−1},{−1,−1,−1},{−1,−1,−1}}.

按照本贴风格, 重新定义树. 提示: 还是应该定义 parent 函数, 字母表里面只有一个元素.

tree is a quadruple T = ( Σ , V , r , f ) T=(\Sigma, \bm{V}, r, f) T=(Σ,V,r,f), where
a) Σ = { 1 } \Sigma=\{1\} Σ={1} is the alphabet;
b) V = { v 1 , … , v n } \bm{V}=\{v_1,\ldots,v_n\} V={v1​,…,vn​} is the set of nodes;
c) r ∈ V r \in \bm{V} r∈V is the root node;
d) ϕ \phi ϕ is the empty node;
e) f : V × Σ ∗ → V ∪ { ϕ } \bm{V} \times \Sigma^* \to \bm{V}\cup\{\phi\} V×Σ∗→V∪{ϕ} satisfying

  • ∀ v ∈ V , ∃ 1   s ∈ Σ ∗   s t . f ( v , s ) = r \forall v\in\bm{V},\exists1 \,s∈\Sigma^∗ \,st. f ( v , s ) = r ∀v∈V,∃1s∈Σ∗st.f(v,s)=r.
  • f ( r , s ) = ϕ f(r,s)=\phi f(r,s)=ϕ

根据图、树、m mm-叉树的学习, 谈谈你对元组的理解.

  • 元组可以是包含多种数据结构,甚至还可以是集合或者是函数.
  • 元组是可以重复的.
  • 成员不可直接修改.
上一篇:上帝与集合的正确做法 拓展欧拉定理 欧拉函数性质


下一篇:Java基础学习笔记(二) - 面向对象基础