社区
C++ 语言
帖子详情
多叉树的序列化和反序列化--急求
yang228
2011-09-16 09:29:56
我需要操作一个比较大的多叉树结构,有的结点可能有几千的孩子,这个树结构是我读文件生成的,文件大概2M多,生成树结构太慢了,我想直接序列化之后存储起来,以后直接读序列化的文件,这样应该会快很多吧。 期待高手给点意见啊。。。
...全文
624
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在win下的编译器,2.5.0版本
jackson-core-asl-1.9.13+jackson-mapper-asl-1.9.13札包
jackson-core-asl-1.9.13.jar和jackson-mapper-asl-1.9.13.jar,在ssh整合中需要用到。
jackson-2.6.jar
Spring 开发 RESTFul应用时,用做Json转换. 某个兄弟不地道,就这么点东西还要分。
Newtonsoft.Json.dll 程序文件
json对象格式转化,最新版本 Newtonsoft.Json.dll 欢迎大家使用。不需要任何分
C++ 语言
65,184
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章