-
Notifications
You must be signed in to change notification settings - Fork 7
/
StackLL.java
94 lines (87 loc) · 1.28 KB
/
StackLL.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
package stack;
public class StackLL implements Stack
{
ListObject head, tail, temp;
public StackLL()
{
tail=null;
head=null;
}
public boolean empty()
{
if(head==null)
return true;
else
return false;
}
public Object peek(Integer pos)
{
try
{
if(pos<0 || pos>getSize()-1)
{
BoundsException ob=new BoundsException();
throw ob;
}
}
catch(BoundsException x)
{
x.printError();
return -1;
}
temp=head;
for(Integer j=0;j<pos;j++)
temp=temp.next;
return temp.val;
}
public void push(Object m)
{
if (head==null)
{
ListObject obj=new ListObject(m);
head=tail=obj;
}
else
{
ListObject obj=new ListObject(m);
tail.next=obj;
tail=obj;
}
}
public Object pop()
{
Integer i=0;
Object pop;
try
{
if(head==null)
{
BoundsException ob=new BoundsException();
throw ob;
}
}
catch(BoundsException x)
{
x.printError();
return null;
}
for(i=2, temp=head; i<getSize(); i++)
temp=temp.next;
pop=temp.next.val;
temp.next=null;
return pop;
}
public Integer getSize()
{
Integer j=0;
for(ListObject i=head; i!=null; i=i.next)
++j;
return j;
}
public void traverse()
{
for(ListObject i=head; i!=null; i=i.next)
System.out.print(i.val+" ");
System.out.println();
}
}