public class MNode>{ private int size; //number of items in the node private MNode left; private Pair[] seq; private int capacity;//capacity of the sequence public MNode(int m){ size=0; left=null; seq= (Pair[]) new Pair[m-1];//Compiler may warn, but ok capacity=m-1; } public MNode(int k,MNode m,Pair[] seq1){ size=k; left=m; seq=(Pair[]) seq1.clone(); capacity=seq.length; } /**create a new node just containing the value e*/ public MNode(E e,int m){ Pair[] myseq=(Pair[]) new Pair[m-1]; //Compiler may warn, but ok myseq[0]=new Pair(e,null); size=1; left=null; seq=myseq; capacity=m-1; } public int getCapacity(){ return capacity; } public int getSize() { return size; } public void setSize(int k) { size = k; } public MNode getLeft() { return left; } public void setLeft(MNode left) { this.left = left; } public Pair[] getSeq() { return seq; } public void setSeq(Pair[] seq) { this.seq = seq; } /**assuming size is < capacity, add element e in order*/ public void addElement(E e){ int temp=0; while((temp(e,null); else{ if (seq[temp].val.compareTo(e)>0){ for(int i=size;i>temp;i--) seq[i]=new Pair(seq[i-1]); seq[temp]=new Pair(e,null); } } size++; } /**assuming size is >0, remove element e if present*/ public boolean removeElement(E e){ return true; //to be completed } /** is this node a leaf?*/ public boolean isLeaf(){ boolean temp=(left==null); int i=0; while((temp==true)&&(i