Implementing a stack with Java
Clash Royale CLAN TAG#URR8PPP
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;
up vote
3
down vote
favorite
I am trying to implement a stack with Java:
public class Stack<E>
Node top = null;
public void push(E data)
Node node = new Node(data);
if (null != top)
node.next = top;
top = node;
public E pop()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
E data = top.data;
top = top.next;
return data;
public E peek()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
E data = top.data;
return data;
public void print()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
Node node = top;
while(null != node)
System.out.println(node.data);
node = node.next;
private class Node
Node next;
E data;
Node(E data)
this.data = data;
I am looking for feedback for the implementation. Also, I wanted to know if the pop()
implementation can cause a memory leak?
java stack
add a comment |Â
up vote
3
down vote
favorite
I am trying to implement a stack with Java:
public class Stack<E>
Node top = null;
public void push(E data)
Node node = new Node(data);
if (null != top)
node.next = top;
top = node;
public E pop()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
E data = top.data;
top = top.next;
return data;
public E peek()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
E data = top.data;
return data;
public void print()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
Node node = top;
while(null != node)
System.out.println(node.data);
node = node.next;
private class Node
Node next;
E data;
Node(E data)
this.data = data;
I am looking for feedback for the implementation. Also, I wanted to know if the pop()
implementation can cause a memory leak?
java stack
add a comment |Â
up vote
3
down vote
favorite
up vote
3
down vote
favorite
I am trying to implement a stack with Java:
public class Stack<E>
Node top = null;
public void push(E data)
Node node = new Node(data);
if (null != top)
node.next = top;
top = node;
public E pop()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
E data = top.data;
top = top.next;
return data;
public E peek()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
E data = top.data;
return data;
public void print()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
Node node = top;
while(null != node)
System.out.println(node.data);
node = node.next;
private class Node
Node next;
E data;
Node(E data)
this.data = data;
I am looking for feedback for the implementation. Also, I wanted to know if the pop()
implementation can cause a memory leak?
java stack
I am trying to implement a stack with Java:
public class Stack<E>
Node top = null;
public void push(E data)
Node node = new Node(data);
if (null != top)
node.next = top;
top = node;
public E pop()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
E data = top.data;
top = top.next;
return data;
public E peek()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
E data = top.data;
return data;
public void print()
if (null == top)
throw new IllegalStateException("Stack is empty");
else
Node node = top;
while(null != node)
System.out.println(node.data);
node = node.next;
private class Node
Node next;
E data;
Node(E data)
this.data = data;
I am looking for feedback for the implementation. Also, I wanted to know if the pop()
implementation can cause a memory leak?
java stack
edited Jul 14 at 19:24
Jamalâ¦
30.1k11114225
30.1k11114225
asked Jul 14 at 18:48
Karan Khanna
1213
1213
add a comment |Â
add a comment |Â
2 Answers
2
active
oldest
votes
up vote
5
down vote
I wanted to know if the pop() implementation can cause a memory leak?
It will not cause a memory leak, because java is a garbage collected language. When top is no longer accessible the garbale collecter will free top if it sees fit.
feedback:
In
push()
the null check is unnessecary, becausenode.next
is already null by default.public void push(E data)
Node node = new Node(data);
node.next = top;
top = node;Rather then have a
print()
method, create atoString()
method.toString()
is a method ofObject
that is used across java to get a string representation of an object. This will make it easier to print your object to different streams.In
Node
, create agetData()
(and optionallysetData()
) method to control access to the data class, or make data final.make
top
private to control use of your class to the supported methods.
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
up vote
2
down vote
Printing an empty stack should not cause an exception. It should print nothing (or possibly print something that represents an empty stack).
There is no way to tell if the stack contains anything, other than peeking and catching an exception. Add a size()
method, or at the very least isEmpty()
.
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
5
down vote
I wanted to know if the pop() implementation can cause a memory leak?
It will not cause a memory leak, because java is a garbage collected language. When top is no longer accessible the garbale collecter will free top if it sees fit.
feedback:
In
push()
the null check is unnessecary, becausenode.next
is already null by default.public void push(E data)
Node node = new Node(data);
node.next = top;
top = node;Rather then have a
print()
method, create atoString()
method.toString()
is a method ofObject
that is used across java to get a string representation of an object. This will make it easier to print your object to different streams.In
Node
, create agetData()
(and optionallysetData()
) method to control access to the data class, or make data final.make
top
private to control use of your class to the supported methods.
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
up vote
5
down vote
I wanted to know if the pop() implementation can cause a memory leak?
It will not cause a memory leak, because java is a garbage collected language. When top is no longer accessible the garbale collecter will free top if it sees fit.
feedback:
In
push()
the null check is unnessecary, becausenode.next
is already null by default.public void push(E data)
Node node = new Node(data);
node.next = top;
top = node;Rather then have a
print()
method, create atoString()
method.toString()
is a method ofObject
that is used across java to get a string representation of an object. This will make it easier to print your object to different streams.In
Node
, create agetData()
(and optionallysetData()
) method to control access to the data class, or make data final.make
top
private to control use of your class to the supported methods.
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
up vote
5
down vote
up vote
5
down vote
I wanted to know if the pop() implementation can cause a memory leak?
It will not cause a memory leak, because java is a garbage collected language. When top is no longer accessible the garbale collecter will free top if it sees fit.
feedback:
In
push()
the null check is unnessecary, becausenode.next
is already null by default.public void push(E data)
Node node = new Node(data);
node.next = top;
top = node;Rather then have a
print()
method, create atoString()
method.toString()
is a method ofObject
that is used across java to get a string representation of an object. This will make it easier to print your object to different streams.In
Node
, create agetData()
(and optionallysetData()
) method to control access to the data class, or make data final.make
top
private to control use of your class to the supported methods.
I wanted to know if the pop() implementation can cause a memory leak?
It will not cause a memory leak, because java is a garbage collected language. When top is no longer accessible the garbale collecter will free top if it sees fit.
feedback:
In
push()
the null check is unnessecary, becausenode.next
is already null by default.public void push(E data)
Node node = new Node(data);
node.next = top;
top = node;Rather then have a
print()
method, create atoString()
method.toString()
is a method ofObject
that is used across java to get a string representation of an object. This will make it easier to print your object to different streams.In
Node
, create agetData()
(and optionallysetData()
) method to control access to the data class, or make data final.make
top
private to control use of your class to the supported methods.
answered Jul 14 at 20:27
Peter
59410
59410
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
up vote
2
down vote
Printing an empty stack should not cause an exception. It should print nothing (or possibly print something that represents an empty stack).
There is no way to tell if the stack contains anything, other than peeking and catching an exception. Add a size()
method, or at the very least isEmpty()
.
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
up vote
2
down vote
Printing an empty stack should not cause an exception. It should print nothing (or possibly print something that represents an empty stack).
There is no way to tell if the stack contains anything, other than peeking and catching an exception. Add a size()
method, or at the very least isEmpty()
.
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
up vote
2
down vote
up vote
2
down vote
Printing an empty stack should not cause an exception. It should print nothing (or possibly print something that represents an empty stack).
There is no way to tell if the stack contains anything, other than peeking and catching an exception. Add a size()
method, or at the very least isEmpty()
.
Printing an empty stack should not cause an exception. It should print nothing (or possibly print something that represents an empty stack).
There is no way to tell if the stack contains anything, other than peeking and catching an exception. Add a size()
method, or at the very least isEmpty()
.
answered Jul 14 at 22:26
AJNeufeld
1,358312
1,358312
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
Got it. Thank You.
â Karan Khanna
Jul 14 at 22:30
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f199507%2fimplementing-a-stack-with-java%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password