package Data_Structure.Tree;
import java.io.IOException;
import java.util.NoSuchElementException;
import java.util.Scanner;
//双亲表示法构造树,该树使用层序进行构造,通过parent下标索引双亲结点
public class ParentTree{
private static final int CAPACITY=100;
private Node nodes[];
private final int root;
private int length;
[code]static class Node{ private char data; private int parent; public Node(char data,int parent) { this.parent = parent; this.data = data; } public char getData(){ return data; } public void setData(char val){ this.data = val; } public int getParent(){ return parent; } public void setParent(int index){ }}//构造函数,给数组分配内存public ParentTree(){ nodes = new Node[CAPACITY]; root=0; length=0;}//构造树结构, 输入时,按照层序排序输入public void createTree(int n) throws IOException { if(nCAPACITY) throw new IllegalArgumentException("非法参数:"+ n); Scanner in =new Scanner(System.in); System.out.println("请先输入根结点元素:"); nodes[0] = new Node(in.next().charAt(0),-1); //根结点没有双亲结点 clearCacheArea(); //清空缓存区 length++; System.out.println("输入子结点以及对应双亲结点的索引\n字符与数字输入完后回车再输入下一对"); for(int i=1;iCAPACITY || n |