- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《java版二叉树》.doc
Java二叉树
本程序的运行效果:
本程序采用递归方式创建一棵二叉树,所以在创建二叉树的时候是有讲究的。另外,本程序还可以根据给定的遍历序列反推出二叉树。
下面是程序源代码。
BinTree.java
public class BinTree {
/** 节点的数据域 */
private char data;
/** 节点的左枝 */
private BinTree left;
/** 节点的右枝 */
private BinTree right;
/** 根节点 */
private int maxLength = 1000;
/** 字符在数组中的位置 */
private int elementPositionInCharArray = 0;
/***/
private BinTree root;
/***/
MyStackBinTree mStack = new MyStackBinTree(100);
/**
* 给节点赋值
*
* @param c
* char
*/
public BinTree(char c) {
data = c;
}
public BinTree() {
}
/**
* 返回根节点
*
* @return
*/
public BinTree getRoot() {
return root;
}
/**
*
* @param node
*/
public void setRoot(BinTree node) {
root = node;
}
public char getData() {
return data;
}
/**
* 创建二叉树
*
* @param c
* 字符数组,存储所有节点数据域的值。如果为“#”则不创建节点
* @param elementPosition
* 要赋值给当前节点的字符在数组中的位置
* @return node 当前节点,最终返回根节点
*/
private BinTree createTree(char[] c, int pos) {
if (c[pos] != #) {
BinTree node = new BinTree(c[pos]);
if ((pos + 1) * 2 = c.length) {
node.left = createTree(c, (pos + 1) * 2 - 1);
if (((pos + 1) * 2 + 1) = c.length) {
node.right = createTree(c, (pos + 1) * 2);
}
}
return node;
}
return null;
}
/**
* 递归先序创建二叉树
*
* @param c
* 输入的数组
* @return 当前节点
*/
private BinTree createTree01(char[] c) {
if (c[elementPositionInCharArray] == #) {
elementPositionInCharArray++;
return null;
} else {
BinTree node = new BinTree();
node.data = c[elementPositionInCharArray];
++elementPositionInCharArray;
node.left = this.createTree01(c);
node.right = this.createTree01(c);
return node;
}
}
/**
*
* @param c
* 字符串数组
*/
public void createTree(char[] c) {
// root = this.createTree(c, 0);
root = this.createTree01(c);
}
/**
* 查找关键字,返回其位置
*
* @param c
* 被查找字段
* @param key
* 查找的关键字
* @return 返回关键字的位置
*/
public int find
您可能关注的文档
- 《Java Web开发详解24》.pdf
- 《Java Web开发详解25》.pdf
- 《Java Web开发详解26》.pdf
- 《Java Web开发详解27》.pdf
- 《Java Web开发详解29》.pdf
- 《Java Web开发详解30》.pdf
- 《Java Web开发详解31》.pdf
- 《Java Web开发详解32》.pdf
- 《Java Web开发详解33》.pdf
- 《Java Web开发详解34》.pdf
- 【产品营销联盟PMA】2024年产品营销领导力状况报告.docx
- 数据作价出资入股的破局之道 (一):政策与难点解析.docx
- 房地产活动策划 -2025三八女神节春季手工团建主题活动推荐方案.docx
- 【欧盟标准组织】体验式网络智能(ENI)-基于人工智能代理的下一代网络切片研究.docx
- 【赛默飞】2024打造出海竞争力:中国创新药的国际生产供应战略白皮书.docx
- B2B电子商务入门的终极指南.docx
- 小白入门DeepSeek50个高阶提示词.docx
- 营销投放平台实操指南- 2025.docx
- 【里瑞通(Digital Realty)】2024您准备好使用数据和AI了吗?-赋能数据和 AI 就绪架构的有效方法白皮书.docx
- 中国酒业协会&腾讯营销洞察:2023年中国白酒行业消费白皮书.docx
文档评论(0)