day26

前序及后序

public void PreOrderVisitWithStack(){
		ObjectStack tempStack = new ObjectStack();
		BinaryCharTree tempNode = this;
		while (!tempStack.isEmpty() || tempNode != null){
			if (tempNode != null){
				System.out.println("" + tempNode.value + " ");
				if(tempNode.rightChild !=null){
					tempStack.push(tempNode.rightChild);
				}
				tempNode = tempNode.leftChild;
			}else{
				tempNode = (BinaryCharTree) tempStack.pop();
			}//Of if
		}//Of while
	}//Of PreOrderVisitWithStack()

	public void postOrderVisitWithStack(){
		ObjectStack tempStack = new ObjectStack();
		BinaryCharTree tempNode = this;
		int j;
		BinaryCharTree[] data;
		data = new BinaryCharTree[10];
		j = 0;
		while (!tempStack.isEmpty() || tempNode != null){
			if (tempNode != null){ ;
				j++;
				data[j] = tempNode;
				if(tempNode.leftChild !=null){
					tempStack.push(tempNode.leftChild);
				}
				tempNode = tempNode.rightChild;
			}else{
				tempNode = (BinaryCharTree) tempStack.pop();
			}//Of if
		}//Of while
		for (int i = j; i > 0; i--) {
			System.out.println("" + data[i].value + " ");
		}//Of for i
	}//Of PostOrderVisitWithStack()

	/**
	 * 
	 * The entrance of the program.
	 * 
	 * @param args
	 *            Not used now.
	 * 
	 */
	public static void main(String[] args) {
		BinaryCharTree tempTree = manualConstructTree();
		System.out.println("\r\nPreorder visit:");
		tempTree.preOrderVisit();
		System.out.println("\r\nIn-order visit:");
		tempTree.inOrderVisit();
		System.out.println("\r\nPost-order visit:");
		tempTree.postOrderVisit();

		System.out.println("\r\n\r\n The depth is: " + tempTree.getDepth());
		System.out.println("The number of nodes is: " + tempTree.getNumNodes());

		tempTree.toDataArrays();
		System.out.println("The values are: " + Arrays.toString(tempTree.valuesArray));
		System.out.println("The indices are: " + Arrays.toString(tempTree.indicesArray));

		tempTree.toDataArraysObjectQueue();
		System.out.println("Only object queue.");
		System.out.println("The values are: " +  Arrays.toString(tempTree.valuesArray));
		System.out.println("The indices are: " +  Arrays.toString(tempTree.indicesArray));

		char[] tempCharArray = {'A', 'B', 'C', 'D', 'E', 'F'};
		int[] tempIndicesArray = {0, 1, 2, 4, 5, 12};
		BinaryCharTree tempTree2 = new BinaryCharTree(tempCharArray, tempIndicesArray);

		System.out.println("\r\nPreorder visit:");
		tempTree2.preOrderVisit();
		System.out.println("\r\nIn-order visit:");
		tempTree2.inOrderVisit();
		System.out.println("\r\nPost-order visit:");
		tempTree2.postOrderVisit();

		System.out.println("\r\n In-order visit with stack:");
		tempTree2.inOrderVisitWithStack();

		System.out.println("\r\n Pre-order visit with stack:");
		tempTree2.PreOrderVisitWithStack();
		System.out.println("\r\n Post-order visit with stack:");
		tempTree2.postOrderVisitWithStack();

	}// Of main

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值