推荐一种优秀的数据结构技巧

简介: 推荐一种优秀的数据结构技巧

这几天调试一个摄像头,看到文档时一皱眉:这格式难免太原始了点。


怎么就原始了?


首先,直接定义数据结构为4096字节。不管数据多少,每次都发这么


多。功能当然也能完成,就是显得……不够专业。


然后呢,在文档中规定字串长度数字。有程序员会问了,这不是很常


见的做法吗?当然很常见。跟第一个问题一样,咱内容少了能不能省点?


如果长度不够,怎么办?


数据结构是顺序定义的。如果顺序变化了,这不整个乱套了吗?



以前专门研究过微软文档(没错,就是WORD文件)的存储格式,名叫


结构化存储方式。因此对数据结构有一点心得,这里就提出来,供需要的人


参考:


结构中的数据单元,有定长和变长两类。


定长单元,采用类型+值的方式。比如说bool、int。


变长单元,由类型+长度+内容的三元组成。这样数据多少都不影响使用


方的处理代码。


顺序问题怎么解决?尽量采用键+数据单元的方式。为什么呢?这样可以


避免顺序、缺少、增加等产生的问题。在新旧版本兼容上也容易处理。这里的


KEY也不一定用字串,也可以用一个int来表示。


这个数据结构有什么好处?这样做的好处就是,把数据结构与内容分开,


这边数据内容的变化,对方解析数据这部分代码完全不用改,只是决定是否要


处理。



需要补充的是,在告知对方数据结构的时候,一定使用int32/short16这样


的形式。在不同系统上,int长度是不一样的。



有朋友一看,这个好,马上改?这里特别提醒的是,每次设置新数据


 结构,都先考虑兼容问题。新旧同时支持,旧的逐步淘汰。


目录
相关文章
|
存储 算法 前端开发
常见数据结构
常见数据结构
62 0
|
7月前
|
算法 C++ 开发者
【C/C++ 数据结构 】 连通图的基本了解
【C/C++ 数据结构 】 连通图的基本了解
106 0
|
7月前
|
存储 算法
数据结构
数据结构
49 2
数据结构 2.2 单循环链表
数据结构 2.2 单循环链表
56 0
|
存储 算法 搜索推荐
【BaseArray 数据结构】
【BaseArray 数据结构】
|
存储 机器学习/深度学习
|
存储 机器学习/深度学习 人工智能
对数据结构的初步认识
对数据结构的初步认识
127 0
|
存储 算法 JavaScript
数据结构到底是什么?
“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。” ——《数据结构、算法与应用》
261 0
数据结构到底是什么?
uiu
|
存储 机器学习/深度学习 算法
我对八种常见数据结构的理解(一)
我对八种常见数据结构的理解(一)
uiu
135 0
我对八种常见数据结构的理解(一)
|
存储 Java 索引