数据结构算法,通用控制台完善
来源:互联网 发布:手机app界面设计软件 编辑:程序博客网 时间:2024/05/25 19:56
通用控制台完善,增加退出功能,增加返回主菜单,为不同叶子节点增加一个证书信息,将来结束时返回这个整数信息,而不是返回叶子节点的字符串
package com.yaofei.first;import java.util.ArrayList;import java.util.List;public class Tree {private List<Node> lst = new ArrayList<Node>();class Node {String data;String parent;}// 给树中增加项目(父,子)public void add(String parent, String child) {Node t = new Node();t.data = child;t.parent = parent;lst.add(t);}// 得到所有孩子public List<String> getChild(String x) {List<String> t = new ArrayList<String>();for (int i = 0; i < lst.size(); i++) {if (lst.get(i).parent.equals(x)) {t.add(lst.get(i).data);}}return t;}// 得到父节点。public String getParent(String x) {for (int i = 0; i < lst.size(); i++) {if (lst.get(i).data.equals(x)) {x = lst.get(i).parent;return x;// 重新调用自己}}return null;}}package com.yoafei.first;import java.util.List;import java.util.Scanner;public class Menu {/** * @param args */Tree tree = new Tree();public void add(String parent, String child) {tree.add(parent, child);}public String go(String x) {Scanner scn = new Scanner(System.in);String isX = "";for (;;) {List<String> lst = tree.getChild(x);if (lst.isEmpty())return x;System.out.println("-------------------------");for (int i = 0; i < lst.size(); i++) {System.out.println(i + "." + lst.get(i));}System.out.println("u.返回上一级");System.out.println("m.返回主菜单");System.out.println("e.退出程序");System.out.println("-------------------------");System.out.print("请输入选择:");String s = scn.nextLine();if (s.equals("u")) {String x1 = tree.getParent(x);if (x1 != null) {x = x1;continue;}}if (s.equals("m")) {isX = "水果";}if (s.equals("e")) {return "";}try {if (isX.equals("水果")) {x = isX;isX = "";} else {String x1 = lst.get(Integer.parseInt(s));x = x1;}} catch (Exception e) {System.out.println("你的选择不在菜单项里,请重新选择!");}}}public static void main(String[] args) {Menu m = new Menu();m.add("水果", "苹果");m.add("水果", "香蕉");m.add("水果", "梨子");m.add("苹果", "红富士苹果");m.add("苹果", "青苹果");m.add("红富士苹果", "红富士1号");m.add("红富士苹果", "红富士2号");String t = m.go("水果");}}运行结果如下:-------------------------0.苹果1.香蕉2.梨子u.返回上一级m.返回主菜单e.退出程序-------------------------请输入选择:0-------------------------0.红富士苹果1.青苹果u.返回上一级m.返回主菜单e.退出程序-------------------------请输入选择:0-------------------------0.红富士1号1.红富士2号u.返回上一级m.返回主菜单e.退出程序-------------------------请输入选择:m-------------------------0.苹果1.香蕉2.梨子u.返回上一级m.返回主菜单e.退出程序-------------------------请输入选择:0-------------------------0.红富士苹果1.青苹果u.返回上一级m.返回主菜单e.退出程序-------------------------请输入选择:u-------------------------0.苹果1.香蕉2.梨子u.返回上一级m.返回主菜单e.退出程序-------------------------请输入选择:0-------------------------0.红富士苹果1.青苹果u.返回上一级m.返回主菜单e.退出程序-------------------------请输入选择:e
0 0
- 数据结构算法,通用控制台完善
- 数据结构-通用算法
- java面试知识点整理之数据结构算法(待完善)
- 一步一步写算法(之通用数据结构)
- 一步一步写算法(之通用数据结构)
- 通用控制台和串口控制台
- 通用菜单_完善功能
- 通用通信协议栈完善总结
- 通用数据结构
- 通用数据结构
- 基于C语言的通用数据结构和算法库
- libcstl:标准C语言通用数据结构和常用算法库
- 归并算法.(待完善)
- 数据结构基础(待完善)
- java数据结构(待完善)
- 重温数据结构与算法(2) 编程中最常用,最通用的数据结构---数组和ArrayList
- 通用算法
- 数据结构-通用结构
- 客户端项目开发流程
- OpenStack Nova: Boot From Volume
- OSX:App Store下载到哪里去了?
- android调用系统相机实现拍照功能
- 一个Excel转换Java集合的工具类
- 数据结构算法,通用控制台完善
- HDU 4438 Hunters(模拟)
- 防止内存泄露的一些Tips
- 指向学生类的指针
- 第三章作业(后)
- test Week 5
- 黑马程序员_泛型
- IOS Foundation框架基本类库的使用
- HighCharts之2D对数饼图