Commit 2bd86198 authored by sshwy's avatar sshwy
Browse files

添加Purfer序列图片

parent e2acc69a
Loading
Loading
Loading
Loading
+43.2 KiB
Loading image diff...
+8 −2
Original line number Diff line number Diff line
@@ -48,11 +48,17 @@ vector<int> pruefer_code() {
}
```

也有一个线性的构造算法。
给一个例子吧,这是一棵 7 个结点的树的 Prufer 序列构建过程:

![prufer](./images/prufer1.png)

最终的序列就是 $2,2,3,3,2$ 。

当然,也有一个线性的构造算法。

### 线性构造

线性构造的本质就是维护一个指针指向我们将要删除的结点。首先发现,叶结点数是非单增的。要么删一个,要么删一个得一个。(翻译到这突然就知道该怎么做了,然后对照原文发现没什么问题,于是自己口糊吧)
线性构造的本质就是维护一个指针指向我们将要删除的结点。首先发现,叶结点数是非严格单调递减的。要么删一个,要么删一个得一个。(翻译到这突然就知道该怎么做了,然后对照原文发现没什么问题,于是自己口糊吧)

于是我们考虑这样一个过程:维护一个指针 $p$。初始时 $p$ 指向编号最小的叶结点。同时我们维护每个结点的度数,方便我们知道在删除结点的时侯是否产生新的叶结点。操作如下: