赞
踩
请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。此时 折痕是凹下去的,即折
痕突起的方向指向纸条的背面。如果从纸条的下边向上方连续对折2 次,压出折痕后展开,此时有三条折痕,从上
到下依次是下折痕、下折痕和上折痕。
给定一 个输入参数N,代表纸条都从下边向上方连续对折N次,请从上到下打印所有折痕的方向 例如:N=1时,打
印: down;N=2时,打印: down down up
通过折纸操作发现,最后打印的结果应该是一个左子树全部为凹,右子树全部为凸的二叉树结构
最后通过中序遍历进行打印
//折纸问题 public class FoldPaper{ //写一个函数调用递归函数,设置初始状态的值 public stati void PrintAllFolds( int N){ printprocess(1,N,true);//折的第一下为凹 } public staic void printprocess(int i ,int N ,boolean down){ if(i<N){ return; } //中序遍历 printprocess(i+1,N,true);//我们默认全为凹的左子树的默认值为true; System.out.println(down?'凹':'凸'); printprocess(i+1,N,false);//打印右子树 } public static void main(String[] args){ int N=3;//这里设置你想折的次数 PrintAllFolds(N); //在主函数中调用 调用递归函数的函数 } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。