这个二叉树我整了一段时间了,因为考试好多,就一直没有完成。现在应该搞做压缩了,有些同学都已经做完了,我还没有开始,有一点小小的急,不过,我还是要顾全大局,万一学校的课挂了,我又要折磨一个假期补考,不能安心做通信部分,划不来啊。不过我会慢慢的做的。不能跟强手比啊,“人人比人,气死人啊!”只要对得起自己就够了。
下面就对二叉树做一下总结。
二叉树是一种树形结构,它的特点是:每个结点至多只有2棵子树。一棵是左子树,一棵是右子树,位置不能颠倒。
看看我构建的二叉树。
给定一组数据:40 7 3 9 37 1 45 52 90 0
以40为根结点,创建二叉树,左孩子要小于父结点,右孩子大于等于父结点
将数组中的数据加入二叉树中构建一棵二叉树
int[] a={40,7,3,9,37,1,45,52,90,0};
for(int i=0;i<a.length;i++){
root=b.add(a[i]);
}
public MyNode add(int obj){
int n=(int) obj;
if(root==null){
dep++;
root=new MyNode(obj,dep);
parent=root;
}
else{
dep++;
parent=root;
boolean a=true;
while(a){
if(parent.getobj()>obj) {
//如果数字小于父结点的数据,并且左孩子为空作为左孩子,否则,右孩子为空,作为右孩子
if(parent.getl()==null){
MyNode node=new MyNode(obj,parent.getdep()+1);
parent.setl(node);
a=false;}
else parent=parent.getl();
}
else{
if(parent.getr()==null) {
MyNode node=new MyNode(obj,parent.getdep()+1);
parent.setr(node);a=false;}
else parent=parent.getr();
}
}
}
return root;
}
遍历二叉树时, 我吧把下面方法里面加了一个while()循环,导致了死循环,害的电脑运行速度慢的要是,字都半天大不出一个,苦恼的要死。
先序遍历二叉树。
public void getindex( MyNode node){
if(node!=null) System.out.print(node.getobj()+" depth:"+ node.getdep()+" ");
if(node.getl()!=null ) getindex(node.getl());
if(node.getr()!=null ) getindex(node.getr());
}
//中序遍历
public void getindex1( MyNode node){
if(node.getl()!=null ) getindex1(node.getl());
if(node!=null) System.out.print(node.getobj()+" depth:"+ node.getdep()+" ");
if(node.getr()!=null ) getindex1(node.getr()); }
//后序遍历
public void getindex2( MyNode node){
if(node.getl()!=null ) getindex2(node.getl());
if(node.getr()!=null ) getindex2(node.getr());
if(node!=null) System.out.print(node.getobj()+" depth:"+ node.getdep()+" ");
运行结果:
- 大小: 4.3 KB
分享到:
相关推荐
(1)以二叉链为存储结构,建立二叉树 (2)用递归算法和非递归算法实现二叉树的中序遍历 (3)二叉树中序遍历的演示
用C++写的二叉树先序遍历、中序遍历和后序遍历非递归算法
数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例二叉树层次遍历 数据结构课程设计实例...
一、实验名称:二叉树的遍历方法 二、实验目的: (1)熟悉C语言的上机环境,进一步掌握C语言的结构特点...要求:从键盘输入先序序列,以二叉链表作为存储方式,建立二叉树实现遍历,采用递归和非递归的两种方法实现。
C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 C语言数据结构课程设计实例...
数据结构课程设计报告-二叉树的遍历.docx
包括了二叉树的各种递归与非递归的遍历算法 还可对二叉树所有结点求和
基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 基于c语言10个数据结构课程设计实例二叉树建立遍历冒泡排序快速排序等 ...
这是数据结构中二叉树的后序遍历的非递归算法的源代码。
二叉树的遍历和排序系统:就是随机建造一颗二叉树,然后对它进行排序和遍历
实验八:二叉树的遍历算法 以下是二叉树建立的两种方法,三种遍历和计算结点数的综合程序.(读者有建议可提出)
按先序遍历的扩展序列建立二叉树的二叉链表存储结构,实现二叉树先序、中序、后序遍历的递归算法,实现二叉树中序遍历的非递归算法,实现二叉树层次遍历的非递归算法(要求使用顺序队列,调用顺序队列基本操作...
/* 设栈元素为二叉树的指针类型 */ typedef struct { QElemType *base; int front; /* 头指针,若队列不空,指向队列头元素 */ int rear; /* 尾指针,若队列不空,指向队列尾元素的下一个位置 */ } SqQueue; ...
二叉树的建立和遍历算法 数据结构课程设计用
使用C语言实现是多种二叉树的遍历方式,分别为层序遍历、顺序递归、非递归中序遍历、中序线索二叉树
编写程序,用先序递归遍历法建立二叉树的二叉链表存储结构,然后输出其先序、中序、后序以及层次遍历结点访问次序。其中层次遍历的实现需使用循环队列。二叉树结点数据类型建议选用字符类型
二叉树的递归算法:建立二叉树、遍历二叉树.doc 多多指教
二叉树的递归算法:建立二叉树、遍历二叉树
。。。
二叉树的遍历!