public class ArrayTree{
Object[] array;
int size;
public ArrayTree(){
array=new Object[128];
}
public Object getCargo(int i){
return array[i];
}
public void setCargo(int i,Object obj){
array[i]=obj;
}
public int getLeft(int i){return 2*i;}
public int getRight(int i){return 2*i+1;}
public int getParent(int i){return i/2;}
public static void main(String args[]){
ArrayTree tree=new ArrayTree();
tree.setCargo(1,"cargo for root");
tree.setCargo(tree.getLeft(1),"cargo for left");
tree.setCargo(tree.getRight(1),"cargo for right");
tree.print(1);
}
public void print(int i){
Object cargo=this.getCargo(i);
if(cargo==null) return;
System.out.println(cargo);
print(getLeft(i));
print(getRight(i));
}
}
《探秘JAVA》
分享到:
相关推荐
- 小程序框架:基于 JavaScript,但使用了微信特有的 WXML(WeChat Markup Language)和 WXSS(WeChat Style Sheet)来分别处理结构和样式。 - 页面结构:每个小程序由多个页面组成,每个页面包含 WXML、WXSS、...
建立二插排序树,首先用一个一维数组记录下读入的数据,然后再用边查找边插入的方式将数据一一对应放在完全二叉树相应的位置,为空的树结点用“0” 补齐。 1.2.2 建立二叉排序树 二叉排序树是一种动态树表。其特点...
本实验旨在让学生掌握哈夫曼树的基本概念、构建方法以及在实际问题中的应用,特别是在图像压缩中的具体实施过程。 实验目标主要包括: 1. 理解和掌握树的存储结构,特别是二叉树的遍历方法,包括前序遍历、中序遍历...
程序设计中,定义了多个结构体类型,如存储哈夫曼树的动态数组结构`HuffmanTree`,存储哈夫曼编码表的`HuffmanCode`,以及字符节点的动态数组结构。这些结构体是实现哈夫曼编码的关键数据结构,它们用于存储和操作树...
数据结构是计算机科学中的核心课程,它探讨了如何有效地组织和管理数据,以便在计算机程序中高效地执行各种操作。本课程的实施进度计划详细规划了数据结构的学习内容,覆盖了从基本概念到高级主题,旨在帮助学生深入...
1. 哈夫曼树的存储结构,可以使用数组、链表或者自定义的结构体来实现。 2. 哈夫曼树的构建算法,如使用堆排序或迭代方法。 3. 编码表的生成,遍历哈夫曼树并将路径转化为编码。 4. 编码和解码的函数,根据编码表...
能使用二分法查找的线性表必须满足用顺序存储结构和线性表是有序表两个条件。 “有序”是特指元素按非递减排列,即从小到大排列,但允许相邻元素相等。下一节排序中,有序的含义也是如此。 对于长度为n的有序线性表...
这本经典、畅销的数据结构教材详细介绍了数据抽象的基础知识,强调作为面向对象方法基础原理的规范和实施之间的区别。书中使用的软件工程原则和概念以及UML图便于增强学生的理解。 ◆ 详细介绍了数据抽象,强调规范...
在C++中,我们通常使用二维数组或者二维动态分配的指针数组来表示二进制迷宫。每个元素代表迷宫中的一个节点,0表示可通过的路径,1表示墙壁或障碍。这种数据结构简单易懂,且易于操作。 二、迷宫生成算法 1. 随机...
- **类型:** 包括数组、链表、栈、队列、树、图等多种结构形式。 - **选择原则:** 根据具体应用场景选择合适的数据结构可以显著提升程序性能。 ### 二、速度与效率 1. **速度与效率的关系:** - **速度:** ...
- **平衡树**: 保持树的高度尽可能小,提高查询效率。 - **B树**: 用于数据库和文件系统中。 **树操作**: - **遍历**: 遍历树的所有节点。 - **插入**: 向树中添加新节点。 - **删除**: 从树中移除节点。 **树...
在本课程设计中,我们将深入探讨“综合排序程序”这一主题,主要使用C语言作为编程工具,结合数据结构的基础知识来实现。综合排序是计算机科学中的一个重要概念,它涉及到多种排序算法的综合应用,旨在提高排序效率...
在VB6.0中,可以使用数组来存储点的坐标,循环遍历数组来执行分治算法。源代码可能会包括以下关键部分: - `Sub` 函数用于处理点集的分治操作。 - `Function` 计算两点间的距离。 - GUI事件处理程序,如Button的...
实验的目的是设计并实现一个能够处理表达式的语法分析器,使用了四种不同的方法来完成这一任务:递归子程序下降法、LL(1)分析法、LR(0)分析法和算符优先分析法。这些方法是编译器设计中的核心算法,用于解析程序源...
- **测试结果**:验证程序能否正确加载文件、构建哈夫曼树、进行编码和解码。 - **问题分析**:针对可能出现的错误进行调试,如文件读写失败、编码不准确等问题,并提出改进措施。 #### 总结 - 通过本次课程设计,...
- **程序流程图:** 用图形化方式展示程序执行流程。 - **模型-视图-控制器框架(MVC):** 一种常见的设计模式,将应用程序分为三个部分。 **4. 面向对象的程序设计方法** - **基本概念:** 如类、对象、封装、...
通过合理使用`const`和`static`关键字,初始化数组,以及高效的数据结构和内存管理,我们可以显著提高程序运行效率,尤其是对于处理大量静态数据的应用。在实践中,结合具体需求和系统资源,选择合适的优化策略是至...
(二)概要分析:用流程图来说明描述算法设计,并对每个程序中使用的存储结构设计加以说明。 (三)详细设计:写出各个算法实现的源程序,完成每个题目要相应的函数关系图和源程序。 (四)调试分析:测试数据,...