news 2026/5/2 20:07:23

树形结构的文件存储

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树形结构的文件存储

一、目标

把树形结构用文件来保存,设计具体的存放格式。

二、树形节点的约定

假设节点只有下列格式:

node {

id 整形,是主键。

pid 长整形,是父节点主键。

name 10字节字符串,是节点名字。

size 整形,是子节点个数。

childs[] 数组类型,是子节点的主键集合。

}

三、设计文件保存格式

有两种:字符串格式和二进制格式。

(一)XML文件格式

有很多的<node>元素,用属性来连接和指向。

<nodes>

<node id="k01" pid="None" name="节点1">

<childs>

<child>k02</child>

</childs>

</node>

<node id="k02" pid="k01" name="节点2">

<childs>

</childs>

</node>

</nodes>

(二)二进制格式

每个节点连续存放,父节点指针和子节点指针指向文件偏移量位置。

每个节点存放格式如下:

主键(4字节,整型)

名字(10字节,字符串)

父节点指针(8字节,文件偏移量)

子节点个数(4字节,整型)

子节点指针集合(每个8字节,连续存放)

写完每个子节点,还需要把文件偏移量设置到父节点记录中。

节点写入接口设计:

// 参数: id是主键,pid是父节点指针,name是节点名字,size是子节点个数

// 返回值:节点起始的文件指针偏移量

long writeNode(int id, long pid, String name, int size)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 19:56:54

大语言模型科学问答优化:数据工程与奖励模型实践

1. 项目背景与核心挑战去年参与某知识推理平台开发时&#xff0c;我们发现现有大语言模型在科学类问答中经常出现"一本正经地胡说八道"的情况。典型场景是当用户询问"为什么天空是蓝色的"时&#xff0c;模型会混合正确的瑞利散射原理与错误的折射解释&…

作者头像 李华
网站建设 2026/5/2 19:55:24

数学建模小白避坑指南:如何高效利用历年优秀论文(附LaTeX模板和常见错误清单)

数学建模竞赛实战手册&#xff1a;从历年优秀论文中提炼黄金法则 第一次打开数学建模竞赛的历年优秀论文合集时&#xff0c;我完全被那些密密麻麻的公式和图表吓到了。作为机械工程专业的学生&#xff0c;我甚至不确定自己是否应该继续参加这个看似属于数学系同学的比赛。直到…

作者头像 李华
网站建设 2026/5/2 19:49:25

英雄联盟玩家的终极智能助手:Seraphine完全使用指南

英雄联盟玩家的终极智能助手&#xff1a;Seraphine完全使用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 你是否曾因分心错过对局接受而懊恼不已&#xff1f;是否在BP阶段面对几十个英雄犹豫不决&#…

作者头像 李华