-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMySet.java
executable file
·130 lines (105 loc) · 2.06 KB
/
MySet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
public class MySet<T> {
private MyLinkedList<T> l;
public MySet() {
// TODO Auto-generated constructor stub
l=new MyLinkedList<T>();
}
public boolean IsEmpty()
{
if(l.getSize()==0)
return true;
return false;
}
public int GetSize()
{
return l.getSize();
}
public void Insert(Object o)
{
l.add((T)o);
}
public T getElement(T a) throws LinkedListOutofBoundsException
{
int i=0;
while(i<l.getSize())
{
if(l.get(i).equals(a))
return l.get(i).getData();
i++;
}
return null;
}
public T getIthElement(int i) throws LinkedListOutofBoundsException
{
return this.l.get(i).getData();
}
public void Delete(Object o) throws LinkedListOutofBoundsException, EmptySetException
{
int i=0;
while(i<l.getSize())
{
if(l.get(i).getData().equals(o))
{l.remove(l.get(i).getData());
return;}
i++;
}
throw new EmptySetException();
}
public boolean IsMember(T data) throws LinkedListOutofBoundsException
{
Node<T> it=this.getHead();
while(it.next!=null)
{
if(it.getData().equals(data))
{
return true;
}
it=it.next;
}
return false;
}
public Node<T> getHead()
{
return l.head;
}
public MySet<T> Intersection(MySet<T> set) throws LinkedListOutofBoundsException
{
Node<T> it=this.getHead();
MyLinkedList<T> inter=new MyLinkedList<T>();
while(it.next!=null)
{
if(this.IsMember(it.getData()) && set.IsMember(it.getData()))
{
inter.add(it.getData());
it=it.next;
}
else
{it=it.next;}
}
this.l=new MyLinkedList<T>();
it=inter.head;
while(it.next!=null)
{
this.l.add(it.getData());
it=it.next;
}
return this;
}
public MySet<T> Union(MySet<T> set) throws LinkedListOutofBoundsException, EmptySetException
{
Node<T> it=set.getHead();
while(it.next!=null)
{
if(!this.IsMember(it.getData()))
{
this.l.add(it.getData());
it=it.next;
}
else
{
it=it.next;
}
}
return this;
}
}