| import java.util.Stack; |
| |
| public class MainClass4 { |
| public static void main(String[] args) { |
| BanaryTree head = init(); |
| whilePrint(head); |
| System.out.println(); |
| print(head); |
| } |
| |
| private static void whilePrint(BanaryTree head) { |
| |
| |
| |
| |
| Stack<BanaryTree> stack = new Stack<>(); |
| stack.push(head); |
| while (!stack.empty()){ |
| BanaryTree node = stack.pop(); |
| if (node != null) { |
| System.out.print(node.data+"\t"); |
| stack.push(node.right); |
| stack.push(node.left); |
| } |
| } |
| } |
| |
| private static void print(BanaryTree head) { |
| if (head == null) { |
| return; |
| } |
| System.out.print(head.data+"\t"); |
| print(head.left); |
| print(head.right); |
| } |
| |
| private static BanaryTree init() { |
| BanaryTree head = new BanaryTree("a"); |
| BanaryTree b = new BanaryTree("b"); |
| BanaryTree c = new BanaryTree("c"); |
| |
| BanaryTree e = new BanaryTree("e"); |
| BanaryTree f = new BanaryTree("f"); |
| |
| BanaryTree g = new BanaryTree("g"); |
| BanaryTree h = new BanaryTree("h"); |
| |
| head.left=b; |
| head.right=c; |
| |
| b.left=e; |
| b.right=f; |
| |
| c.left=g; |
| c.right=h; |
| return head; |
| } |
| } |
总结
| 程序中不能使用递归,因为使用的是系统栈,栈过长会报 stack over flow 错误 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具