Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.setLinked;
- /**
- * @author Lloyd Samuel Garcia
- * 04986 CC-DataStruc21
- * 3:00 PM - 5:30 PM TTH
- * MySetLinked - linked-list implementation of MySet interface
- */
- import java.util.StringTokenizer;
- public class MySetLinked implements MySet {
- private Node head, tail;
- public int cardinality;
- private Node position;
- // constructor
- public MySetLinked(Object[] items) {
- for (int i = 0; i < items.length; addElement(items[i]), i++);//editonun
- }
- //default constructor
- public MySetLinked() {
- }
- @Override
- public boolean isFull() { return false; }
- @Override
- public boolean isEmpty() { return cardinality == 0; }
- @Override
- public boolean isElement(Object item) {
- boolean found = false;
- if (!isEmpty()) {
- // sequential search
- Node tnode = head;
- while (tnode != null) {
- if (tnode.getItem().equals(item)) { found = true; position = tnode; break;}
- tnode = tnode.getNext();
- }
- }
- return found;
- }
- @Override
- public boolean addElement(Object item) {
- boolean isElem = !isElement(item);
- if (isElem) {
- Node node = new Node(item);
- if (!isEmpty())
- tail.setNext(node);
- else
- head = node;
- tail = node;
- cardinality++;
- }
- return isElem;
- }
- @Override
- public boolean deleteElement(Object item) {
- boolean isElem = isElement(item);
- Node tnode = head;
- if (head == position) {
- head = tnode.getNext();
- tnode = null;
- } else {
- Node tnodenext;
- for(tnodenext = tnode.getNext();tnodenext != position;tnode = tnode.getNext(),tnodenext = tnode.getNext()){
- }if (tnodenext == tail) {
- tail = tnode;
- tail.setNext(null);
- } else
- tnode.setNext(tnodenext.getNext());
- tnodenext = null;
- }
- cardinality--;
- return isElem;
- }
- @Override
- public MySet union(MySet parset) {
- MySet union = new MySetLinked();
- MySetLinked set = (MySetLinked) parset;
- Node node = head;
- while(node != null) {
- union.addElement(node.getItem());
- node = node.getNext();
- }
- StringTokenizer setTokens = new StringTokenizer(set.toString(), "{},");
- for(setTokens.hasMoreTokens(),union.addElement(setTokens.nextToken());;)
- return union;
- }
- @Override
- public MySet intersect(MySet parset) {
- MySet intersect = new MySetLinked();
- MySetLinked pset = (MySetLinked) parset;
- // populate the result set
- for (Node node = head; node != null; node = node.getNext()) {
- if (pset.isElement(node.getItem()))
- intersect.addElement(node.getItem());
- }
- return intersect;
- }
- @Override
- public MySet difference(MySet parset) {
- MySet difference = new MySetLinked();
- MySetLinked set = (MySetLinked) parset;
- for (Node node = head; node != null; node = node.getNext()) {
- if (!set.isElement(node.getItem()))
- difference.addElement(node.getItem());
- }
- return difference;
- }
- @Override
- public MySet crossproduct(MySet parset) {
- MySet crossproduct = new MySetLinked();
- MySetLinked set = (MySetLinked) parset;
- for (Node node = head; node != null; node = node.getNext()) {
- StringTokenizer setTokens = new StringTokenizer(set.toString(), "{},");
- while (setTokens.hasMoreTokens()) {
- MySetLinked temp = new MySetLinked();
- temp.addElement(node.getItem());
- temp.addElement(setTokens.nextToken());
- if (temp.cardinality == 2)
- crossproduct.addElement(temp);
- }
- }
- return crossproduct;
- }
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append("{");
- for (Node node = head; node != null; node = node.getNext()) {
- sb.append(node.getItem());
- if (node.getNext() != null)
- sb.append(",");
- }
- sb.append("}");
- return sb.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement