社区
C++ 语言
帖子详情
多叉树的序列化和反序列化--急求
yang228
2011-09-16 09:29:56
我需要操作一个比较大的多叉树结构,有的结点可能有几千的孩子,这个树结构是我读文件生成的,文件大概2M多,生成树结构太慢了,我想直接序列化之后存储起来,以后直接读序列化的文件,这样应该会快很多吧。 期待高手给点意见啊。。。
...全文
649
10
打赏
收藏
多叉树的序列化和反序列化--急求
我需要操作一个比较大的多叉树结构,有的结点可能有几千的孩子,这个树结构是我读文件生成的,文件大概2M多,生成树结构太慢了,我想直接序列化之后存储起来,以后直接读序列化的文件,这样应该会快很多吧。 期待高手给点意见啊。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yang228
2011-09-16
打赏
举报
回复
python 搞这个很爽吗? 额,还没用过。。
冻结
2011-09-16
打赏
举报
回复
如果用python,那就爽了。
冻结
2011-09-16
打赏
举报
回复
以前弄过,
序列化的时候,深度遍历。
反序列化的时候,记录一个节点总数,用父子关系,再新建这个结构。
我用的是MFC的序列化。
yang228
2011-09-16
打赏
举报
回复
这个建树的时候,每次都要按层遍历,比较麻烦,解析的时候肯定慢了, 我想着序列化好了的话,下次生成的时候只需要读文件就可以了,不需要解析,这样就能快不少了。
SonicLing
2011-09-16
打赏
举报
回复
先想想如何提高解析速度吧。序列化和反序列化本质还是解析、反解析,只不过采用一种好的顺序可能会快一点,但是也不一定能快多少,这要看你原先的解析难度有多难,速度最快能有多快。
yang228
2011-09-16
打赏
举报
回复
原来的文件吗? 类似于这样的, abc def aag
我做的树就是root
a d
b a e
c g c
大概这样
qq120848369
2011-09-16
打赏
举报
回复
B树么,不解释。
ryfdizuo
2011-09-16
打赏
举报
回复
文件中是怎么存储的。
yang228
2011-09-16
打赏
举报
回复
额,大家给点意见吧。。在线等。
SonicLing
2011-09-16
打赏
举报
回复
template<typename T>
struct node_storage
{
T data;
unsigned parent;
};
template<typename T>
struct node : public node_storage<T>
{
std::list<unsigned> children;
}
typedef std::vector<node<my_type> > tree_t;
tree_t my_tree;
node_storage<my_type> *serial = new node_storage<my_type>(my_tree.size());
for ( ... ) serial[i] = my_tree[i];
fwrite(serial, sizeof(node_storage<my_type>), my_tree.size(), fp);
//========================================
//计算count
fread(serial, sizeof(node_storage<my_type>), count, fp);
for (...) my_tree.push_back(serial[i]);
// 重建children列表
for (...) my_tree[my_tree[i].parent].children.push_back(i);
Newtonsoft.Json.Net20【2.0版本】 Json
序列化
反
序列化
Newtonsoft.Json.Net20 Json
序列化
反
序列化
protoc-2.5.0-win32.zip
protobuf是Protocol Buffers的缩写,它是一种高效的数据
序列化
协议,由Google开发并开源。...使用这个工具,开发者能够便捷地实现结构化数据的
序列化
和
反
序列化
,从而提高应用程序的效率和可维护性。
jackson-2.6.jar
在Spring框架中,Jackson作为默认的JSON转换工具,用于处理RESTful应用程序中的数据
序列化
和
反
序列化
。`jackson-2.6.jar`是Jackson库的一个版本,特别地,这个版本是2.6系列的某个候选发布版本(Release Candidate,...
protobuf-2.5.0 jar包及代码生成工具
1. **效率**:protobuf
序列化
后的数据大小通常比XML小得多,且
序列化
和
反
序列化
速度更快。 2. **跨平台兼容性**:protobuf支持多种编程语言,使得不同系统间的数据交换变得简单。 3. **版本兼容性**:protobuf设计了...
jackson2.5-all
Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、
序列化
和
反
序列化
JSON数据。标题中的"jackson2.5-all"指的是Jackson库的2.5版本,这是一个集合了核心组件、数据绑定和注解支持...
C++ 语言
65,199
社区成员
250,521
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章