java实现节点循环菜单

package com.zhangle.arithmetic;


import java.util.Scanner;




public class ReTalkMenu {
private String data;
private ReTalkMenu father;
private ReTalkMenu left;
private ReTalkMenu right;
private ReTalkMenu child;
public ReTalkMenu(String x) {
data=x;
}
public void goShow(ReTalkMenu x) {
Scanner scanner = new Scanner(System.in);
int z=0;
for (;;) {
System.out.println("-----------");
ReTalkMenu temp=x.child;
while(x.child!=null){
System.out.println(z+"、"+x.child.data);
x.child=x.child.right;
z++;
}
System.out.println("u.请返回上一级");
System.out.println("m.返回主菜单");
System.out.println("e.退出整个系统");
System.out.println("-----------");
System.out.println("请输入选择:");
String string = scanner.nextLine();
if (string.equals("u")) {

}
if (string.equals("e")) {
System.exit(0);
}
if (string.equals("m")) {

}
int i = Integer.parseInt(string);
for (int j = 0; j < i+1; j++) {
x=temp.child;

}
if (i==0) {
x=temp;
}
goShow(x);

}


}
public void appendChild(String child) {
ReTalkMenu p=this;
while (p.child!=null) {
p=p.child;
}
p.child=new ReTalkMenu(child);
}
public void appendBrother(String brother) {
ReTalkMenu p=this;
while (p.left!=null) {
p=p.left;
}
p.left=new ReTalkMenu(brother);
}

public void appendLittle(String little) {
ReTalkMenu p=this;
while (p.right!=null) {
p=p.right;
}
p.right=new ReTalkMenu(little);
}

/**
* @param args
*/
public static void main(String[] args) {
// 创建菜单对象
ReTalkMenu rtm=new ReTalkMenu("水果");
rtm.appendChild("苹果");
rtm.child.appendLittle("香蕉");
rtm.child.right.appendLittle("梨子");
rtm.child.appendChild("红富士苹果");
rtm.child.child.appendLittle("国光苹果");
rtm.child.child.right.appendChild("富强1号");
rtm.child.child.right.child.appendLittle("富强2号");


System.out.println("水果甩卖");
rtm.goShow(rtm);//界面不应该是水果和苹果在同一级别
}


}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以通过使用递归和面向对象的思想来实现树形菜单。面是一个简单的示例: 首先,我们需要定义一个树类,该类包含节点的值和子节点列表: ```java class TreeNode { private String value; private List<TreeNode> children; public TreeNode(String value) { this.value = value; this.children = new ArrayList<>(); } public void addChild(TreeNode child) { children.add(child); } public List<TreeNode> getChildren { return children; } public String getValue() { return value } } ``` 然后,我们可以创建一个树形菜单类,该类包含根节点和一些操作方法: ```java class TreeMenu { private TreeNode root; public TreeMenu(TreeNode root) { this.root = root; } public void printMenu() { printNode(root, 0); } private void printNode(TreeNode node, int level) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < level; i++) { sb.append(" "); // 每一层缩进两个空格 } sb.append(node.getValue()); System.out.println(sb.toString()); List<TreeNode> children = node.getChildren(); for (TreeNode child : children) { printNode(child, level + 1); } } } ``` 最后,我们可以使用上述类来创建树形菜单并打印出来: ```java public class Main { public static void main(String[] args) { TreeNode root = new TreeNode("Root"); TreeNode node1 = new TreeNode("Node 1"); TreeNode node2 = new TreeNode("Node 2"); TreeNode node3 = new TreeNode("Node 3"); TreeNode node11 = new TreeNode("Node 1.1"); TreeNode node12 = new TreeNode("Node 1.2"); TreeNode node21 = new TreeNode("Node 2.1"); root.addChild(node1); root.addChild(node2); root.addChild(node3); node1.addChild(node11); node1.addChild(node12); node2.addChild(node21); TreeMenu treeMenu = new TreeMenu(root); treeMenu.printMenu(); } } ``` 运行上述代码,将会输出以下树形菜单: ``` Root Node 1 Node 1.1 Node 1.2 Node 2 Node 2.1 Node 3 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值