-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMySet.java
More file actions
87 lines (86 loc) · 1.51 KB
/
MySet.java
File metadata and controls
87 lines (86 loc) · 1.51 KB
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
public class MySet<X>
{
public MyLinkedList<X> a=new MyLinkedList<X>();
public boolean IsEmpty()
{
return (a.isEmpty());
}
public boolean IsMember(X o)
{
return (a.isMember(o));
}
public void addElement(X Element)
{
if (!(IsMember(Element)))
{
Node<X> n=new Node<X>(Element,null,null);
a.addLast(n);
}
}
public void Delete(X o)
{
if (a.isMember(o))
{
Node<X> c=a.header.getNext();
while (c.getElement()!=o)
{
c=c.getNext();
}
a.remove(c);
}
}
public MySet<X> union(MySet<X> otherSet)
{
MySet<X> b=new MySet<X>();
if ((this==null)&&(otherSet==null))
{
return null;
}
else if (this==null)
{
return otherSet;
}
else
{
Node<X> th=this.a.header.getNext();
while (th!=this.a.trailer)
{
b.addElement((th.getElement()));
th=th.getNext();
}
MyLinkedList<X> l=otherSet.a;
Node<X> c=l.header.getNext();
while (c!=l.trailer)
{
if (this.IsMember((c.getElement()))==false)
{
b.addElement((c.getElement()));
}
c=c.getNext();
}
return b;
}
}
public MySet<X> intersection(MySet<X> otherSet)
{
MySet<X> b=new MySet<X>();
if ((this==null)||(otherSet==null))
{
return null;
}
else
{
MyLinkedList<X> l=otherSet.a;
Node<X> c=l.header.getNext();
while (c!=l.trailer)
{
if (this.IsMember((c.getElement())))
{
b.addElement((c.getElement()));
}
c=c.getNext();
}
return b;
}
}
}