-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEdgeListC.pde
74 lines (64 loc) · 1.37 KB
/
EdgeListC.pde
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
class EdgeListC
{
int totalEdge;
EdgeC headEdge;
// default constructor function
EdgeListC()
{
headEdge = null;
totalEdge = 0;
}
// function to initialize head edge
void initHeadEdge(EdgeC edge)
{
headEdge = new EdgeC();
headEdge = edge;
headEdge.nextEdge = headEdge;
headEdge.prevEdge = headEdge;
totalEdge = 1;
}
// function to insert a dummy edge
EdgeC insertDummyEdge()
{
EdgeC edge = new EdgeC();
insertEdge(edge);
return edge;
}
// function to insert a given edge
void insertEdge(EdgeC edge)
{
if (headEdge == null)
initHeadEdge(edge);
else
{
edge.nextEdge = headEdge;
edge.prevEdge = headEdge.prevEdge;
headEdge.prevEdge.nextEdge = edge;
headEdge.prevEdge = edge;
++totalEdge;
}
}
// funtion to delete a specific edge
void deleteEdge(EdgeC edge)
{
if (headEdge == headEdge.nextEdge)
headEdge = null;
else if (headEdge == edge)
headEdge = headEdge.nextEdge;
edge.prevEdge.nextEdge = edge.nextEdge;
edge.nextEdge.prevEdge = edge.prevEdge;
--totalEdge;
}
// funtion to print edge list
void printEdgeList()
{
if (headEdge == null)
return;
EdgeC edge = headEdge;
do
{
edge.printEdge();
edge = edge.nextEdge;
} while(edge != headEdge);
}
}