`
E-Hunter
  • 浏览: 11707 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

复合对象解析为XML的顺序表算法的改进

    博客分类:
  • Java
阅读更多

   上次的算法采用的算法,不适合生成相对路径,另一个的弊端在于,如果这个解析树太过庞大,那么用来表示路径的数组就越庞大,占用了大量的空间,针对这一点,我又进行了改进,从而获得了一个使用空间较少的算法。

    此算法也可容易的生成相对路径。看例子,这次顺序表的结构发生了变化:




本次在存储结构上发生了变化,最上面一行表示存储的节点,下面的数字代表是该节点父节点所在的位置。当发现节点D已经存在时,记录下D的父节点位置1,然后从节点C开始向上查找父节点,如果一直查找到某个节点父节点的值小于1,说明他们不再一个分支上,在沿着D往上查找,相互交替,一直到他们到达根节点或者连续两个父节点相同,这时就可以组合出这个相对路径了。

    算法二比算法一在空间使用率上有了很大的改进,但是我还没有验证此算法的可靠性,欢迎大家批评指正。

分享到:
评论

相关推荐

    hibernate源码分析过程

    Hibernate 的基本映射包括 id 算法、复合主键、数据版本并发性控制等。id 算法可以是整型自增、sql server 等数据库的 identity、Oracle 的 sequence、hilo(高低位)算法、uuid、guid、程序赋值等。复合主键可以...

    2017年阿里Java基础面试题文档 Java知识分享

    - **树**:层次结构的数据表示形式,通常用于文件系统、XML解析等。 - **图**:由顶点和边组成的复杂数据结构,用于模拟复杂的网络结构。 #### 十一、String与StringBuffer的区别 - **String**:不可变字符串,即...

    快学 scala 中文版 带完整目录

    10.1 为什么没有多重继承 135 10.2 当作接口使用的特质 137 10.3 带有具体实现的特质 138 10.4 带有特质的对象 139 10.5 叠加在一起的特质 140 10.6 在特质中重写抽象方法 141 10.7 当作富接口使用的特质 142 ...

    HIBERNATE - 符合Java习惯的关系数据库持久化

    通过将Java对象模型映射到关系型数据库表上,Hibernate为数据持久化提供了强大的支持,同时保持了代码的简洁性和可维护性。 #### 二、权限与配置 在部署Hibernate之前,必须确保具备适当的权限,并进行正确的配置...

    博客园c#文章精华2

    - **序列化过程**:将对象的状态转换为XML格式的字符串或文件的过程。 - **反序列化**:将XML格式的数据转换回对象的过程。 - **应用场景**:主要用于数据交换、持久化存储等场合。 ### C#泛型编程基础实例详解 ##...

    2021-2022计算机二级等级考试试题及答案No.18700.docx

    17. 作用域顺序:在Web开发中,作用域从大到小为application > session > request > pageContext。 18. 赋值语句:在C/C++或类似的编程语言中,x++=y++这样的复合赋值语句可能导致未定义行为,因为它涉及到了两个...

    2021-2022计算机二级等级考试试题及答案No.13674.docx

    在一个表中,可以设置一个复合主键(由多个字段组成),但通常建议仅使用单一字段作为主键以简化设计。因此,正确答案是**B. 主关键字段中不许有重复值和空值**。 ### 3. 二分查找的应用 二分查找算法适用于有序...

    前端面试宝典V3.0.docx

    - **引用计数算法**:每个对象都有一个引用计数,当引用计数为 0 时,对象会被回收。 #### 进程与线程的关系 - **进程**:是操作系统分配资源的基本单位。 - **线程**:是进程内的执行单元,一个进程可以有多个线程...

    WebKit分析报告2

    - **DOM解析基本算法**:将HTML文档转换为DOM树的过程。 #### WebKit DOM代码解析流程 - **解析HTML文档**:生成DOM树。 - **解析CSS样式表**:生成样式规则。 - **合并DOM树和样式规则**:生成渲染树。 ### ...

    2021-2022计算机二级等级考试试题及答案No.4807.docx

    以下是根据题目内容解析的一些重要知识点: 1. C 语言特性:C 语言允许 main 函数在文件的任何位置,每行可以写多条语句,但通常为了可读性,每行只写一条。C 语言没有内置的输入/输出语句,输入/输出通过标准...

    中级程序员必备面试题.txt

    而`LinkedHashSet`则是基于哈希表与双向链表实现,保证了元素插入顺序。 #### 用JDBC编写带有事务处理的代码示例 使用JDBC进行数据库操作时,事务管理是非常重要的。以下是一个简单的示例: ```java Connection ...

    2021-2022计算机二级等级考试试题及答案No.13774.docx

    - **知识点**: 在Python中,使用文件对象的 `write()` 方法可以向文件写入字符串。 - **正确答案**: B. 90,87,93 ### 17. IE 浏览器功能 - **知识点**: 使用IE浏览器,收藏夹功能允许用户保存网页链接。 - **正确...

Global site tag (gtag.js) - Google Analytics