diff --git a/set/OrderedListSet.java b/set/OrderedListSet.java new file mode 100644 index 0000000..fa7f1c4 --- /dev/null +++ b/set/OrderedListSet.java @@ -0,0 +1,140 @@ +package set; + +import position.NodePositionList; +import position.PositionList; +import utility.DefaultComparator; +import utility.merge.MergeTemplate; + +import java.util.Comparator; + +/** + * Created with xgiovio.macbookair. + * User: xgiovio + * Date: 14/05/14 + * Time: 14:23 + */ + +public class OrderedListSet implements Set { + private Comparator c; + private PositionList L; + + + + OrderedListSet() { + L = new NodePositionList(); + c = new DefaultComparator(); + } + + OrderedListSet(Comparator in_c) { + L = new NodePositionList(); + c = in_c; + } + + + + + @Override + public int size() { + return L.size(); + } + + @Override + public boolean isEmpty() { + return L.isEmpty(); + } + + + + + @Override + public Set union(Set B) { + new MergeUnion(this.L, ,c); + } + + @Override + public Set intersect(Set B) { + return null; + } + + @Override + public Set subtract(Set B) { + return null; + } + + + + + + //////////////////////// inner class override methods from merge template ///// + + protected class MergeUnion extends MergeTemplate{ + + public MergeUnion (PositionList A , PositionList B, DefaultComparator c){ + super(A,B,c); + } + + @Override + protected void aIsLess(E a) { + + } + + @Override + protected void bIsLess(E b) { + + } + + @Override + protected void bothAreEqual(E a, E b) { + + } + } + + protected class MergeIntersect extends MergeTemplate{ + + public MergeIntersect (PositionList A , PositionList B, DefaultComparator c){ + super(A,B,c); + } + + @Override + protected void aIsLess(E a) { + + } + + @Override + protected void bIsLess(E b) { + + } + + @Override + protected void bothAreEqual(E a, E b) { + + } + } + + protected class MergeSubtract extends MergeTemplate{ + + public MergeSubtract (PositionList A , PositionList B, DefaultComparator c){ + super(A,B,c); + } + + @Override + protected void aIsLess(E a) { + + } + + @Override + protected void bIsLess(E b) { + + } + + @Override + protected void bothAreEqual(E a, E b) { + + } + } + + + + + +} \ No newline at end of file diff --git a/set/Set.java b/set/Set.java new file mode 100644 index 0000000..193ab67 --- /dev/null +++ b/set/Set.java @@ -0,0 +1,25 @@ +package set; + +/** + * Created with xgiovio.macbookair. + * User: xgiovio + * Date: 14/05/14 + * Time: 14:18 + */ +public interface Set { + // Restituisce il numero degli elementi nell’insieme + public int size(); + + // Restituisce true se l’insieme è vuoto + public boolean isEmpty(); + + // Rimpiazza this con l’unione di this e B + public Set union(Set B) ; + + // Rimpiazza this con l’intersezione di this e B + public Set intersect(Set B) ; + + // Rimpiazza this con la differenza di this e B + public Set subtract(Set B) ; + +} diff --git a/euler_tour/EulerTour.java b/utility/euler_tour/EulerTour.java similarity index 96% rename from euler_tour/EulerTour.java rename to utility/euler_tour/EulerTour.java index ff03cbb..6ae1963 100644 --- a/euler_tour/EulerTour.java +++ b/utility/euler_tour/EulerTour.java @@ -1,4 +1,4 @@ -package euler_tour; +package utility.euler_tour; import tree.binarytree.*; import position.Position; diff --git a/euler_tour/expressions/AdditionOperator.java b/utility/euler_tour/expressions/AdditionOperator.java similarity index 88% rename from euler_tour/expressions/AdditionOperator.java rename to utility/euler_tour/expressions/AdditionOperator.java index ed5192b..9c9b5f7 100644 --- a/euler_tour/expressions/AdditionOperator.java +++ b/utility/euler_tour/expressions/AdditionOperator.java @@ -1,4 +1,4 @@ -package euler_tour.expressions; +package utility.euler_tour.expressions; /** * Created with MONSTER. diff --git a/euler_tour/expressions/EvaluateExpressionTour.java b/utility/euler_tour/expressions/EvaluateExpressionTour.java similarity index 89% rename from euler_tour/expressions/EvaluateExpressionTour.java rename to utility/euler_tour/expressions/EvaluateExpressionTour.java index 3803cb7..83edfde 100644 --- a/euler_tour/expressions/EvaluateExpressionTour.java +++ b/utility/euler_tour/expressions/EvaluateExpressionTour.java @@ -1,6 +1,6 @@ -package euler_tour.expressions; +package utility.euler_tour.expressions; -import euler_tour.EulerTour; +import utility.euler_tour.EulerTour; import position.Position; import tree.binarytree.BinaryTree; diff --git a/euler_tour/expressions/ExpressionOperator.java b/utility/euler_tour/expressions/ExpressionOperator.java similarity index 88% rename from euler_tour/expressions/ExpressionOperator.java rename to utility/euler_tour/expressions/ExpressionOperator.java index 9159582..b61774b 100644 --- a/euler_tour/expressions/ExpressionOperator.java +++ b/utility/euler_tour/expressions/ExpressionOperator.java @@ -1,4 +1,4 @@ -package euler_tour.expressions; +package utility.euler_tour.expressions; /** * Created with MONSTER. diff --git a/euler_tour/expressions/ExpressionTerm.java b/utility/euler_tour/expressions/ExpressionTerm.java similarity index 86% rename from euler_tour/expressions/ExpressionTerm.java rename to utility/euler_tour/expressions/ExpressionTerm.java index ceb992a..79e5147 100644 --- a/euler_tour/expressions/ExpressionTerm.java +++ b/utility/euler_tour/expressions/ExpressionTerm.java @@ -1,4 +1,4 @@ -package euler_tour.expressions; +package utility.euler_tour.expressions; /** * Created with MONSTER. diff --git a/euler_tour/expressions/ExpressionVariable.java b/utility/euler_tour/expressions/ExpressionVariable.java similarity index 90% rename from euler_tour/expressions/ExpressionVariable.java rename to utility/euler_tour/expressions/ExpressionVariable.java index 1dfdee2..4ad58b1 100644 --- a/euler_tour/expressions/ExpressionVariable.java +++ b/utility/euler_tour/expressions/ExpressionVariable.java @@ -1,4 +1,4 @@ -package euler_tour.expressions; +package utility.euler_tour.expressions; /** * Created with MONSTER. diff --git a/euler_tour/expressions/StringExpressionTour.java b/utility/euler_tour/expressions/StringExpressionTour.java similarity index 92% rename from euler_tour/expressions/StringExpressionTour.java rename to utility/euler_tour/expressions/StringExpressionTour.java index 701c3ab..381c32b 100644 --- a/euler_tour/expressions/StringExpressionTour.java +++ b/utility/euler_tour/expressions/StringExpressionTour.java @@ -1,6 +1,6 @@ -package euler_tour.expressions; +package utility.euler_tour.expressions; -import euler_tour.EulerTour; +import utility.euler_tour.EulerTour; import position.Position; import tree.binarytree.BinaryTree; diff --git a/utility/merge/MergeTemplate.java b/utility/merge/MergeTemplate.java new file mode 100644 index 0000000..64f298a --- /dev/null +++ b/utility/merge/MergeTemplate.java @@ -0,0 +1,80 @@ +package utility.merge; + +import exceptions.BoundaryViolationException; +import exceptions.EmptyListException; +import exceptions.InvalidPositionException; +import position.NodePositionList; +import position.Position; +import position.PositionList; +import utility.DefaultComparator; + +import java.util.Comparator; +import java.util.Iterator; + +/** + * Created with xgiovio.macbookair. + * User: xgiovio + * Date: 14/05/14 + * Time: 14:48 + */ +public abstract class MergeTemplate { + + PositionList s = new NodePositionList(); + Comparator c = null; + + public MergeTemplate (PositionList A, PositionList B){ + this(A,B,new DefaultComparator()); + } + + public MergeTemplate (PositionList A, PositionList B, Comparator in_c){ + + c = in_c; + E a,b; + Iterator Ait, Bit; + Ait = A.iterator(); + Bit = B.iterator(); + + while (!(Ait.hasNext()) && !(Bit.hasNext())) { + + a = Ait.next(); + b= Bit.next(); + + if ( c.compare(a,b) < 0 ) + aIsLess(a); + else if (c.compare(a,b) > 0) + bIsLess(b); + else // se b = a + bothAreEqual(a, b); + + } + while (!(Ait.hasNext())) { + a = Ait.next(); + aIsLess(a); + } + while (!(Bit.hasNext())) { + b = Bit.next(); + bIsLess(b); + } + + + } + + + abstract protected void aIsLess (E a); + + abstract protected void bIsLess (E b); + + abstract protected void bothAreEqual (E a, E b); + + + public PositionList getResult () { + return s; + } + + + + + + + +}