文件共享系统有时会使用像Tiger Tree Hash这样的工具来检查文件下载时的完整性。散列树通常用于检查树叶的完整性,而不需要下载完整的树,而只需要包含感兴趣的叶子的根和树枝(加上树枝中的必要存根)。
我的问题是:假设要下载完整的文件时,为什么要使用树来检查文件的完整性?一个普通的哈希列表(每个文件块的哈希+列表的哈希)实现和管理都很简单,并且只比树稍微大一些。列表的哈希仍然和树形中的根哈希一样工作。
假设您有一个完整的二叉树(即每个内部节点都有两个非空子节点)。每个节点包含一个非零整数。您将被赋予将树编码和解码为/从整数列表中解码的任务。树在内部存储,如下所示: int data;};int *encode(struct要点:复杂性(理想情况下,节点数是线性的)源代码长度没有点数,而且不限于C。树示例:
5