Objectss_linked_list.py & SLinkedList.java| Python | Java |
|---|---|
class SSLNode:
def __init__(self, item, nextnode):
self.element = item
self.next = nextnode
class SLinkedList:
def __init__(self):
self.first = None
self.size = 0
def __str__(self):
outstr = "-"
node = self.first
while node:
outstr = outstr +
str(node.element) + "-"
node = node.next
return outstr
def add_last(self, element):
newnode = SSLNode(element, None)
if self.first == None:
self.first = newnode
else:
node = self.first
while node.next:
node = node.next
node.next = newnode
self.size = self.size + 1
|
class SSLNode {
Object element;
SSLNode next;
public SSLNode(Object item, SSLNode nextnode) {
element = item;
next = nextnode;
}
}
class SLinkedList {
private SSLNode first;
private int size;
public SLinkedList() {
first = null;
size = 0;
}
public String toString() {
String outstr = "-";
SSLNode node = first;
while (node != null) {
outstr = outstr +
node.element.toString() + "-";
node = node.next;
}
return outstr;
}
public void addLast(Object element) {
SSLNode newnode = new SSLNode(element, null);
if (first == null) {
first = newnode;
} else {
SSLNode node = first;
while (node.next != null) {
node = node.next;
}
node.next = newnode;
}
size = size + 1;
}
}
|
list_tester.py and ListTester.java| Python | Java |
|---|---|
from s_linked_list import SSLNode
from s_linked_list import SLinkedList
def test_linkedlist():
mylist = SLinkedList()
mylist.add_last('a')
mylist.add_last('b')
mylist.add_last('c')
print(mylist)
test_linkedlist()
|
class ListTester {
public static void main(String[] args) {
SLinkedList mylist = new SLinkedList();
mylist.addLast("a");
mylist.addLast("b");
mylist.addLast("c");
System.out.println(mylist);
}
}
|
java.util.ArrayListjava.util.LinkedListjava.util.Stackjava.util.ArrayDequejava.util.PriorityQueuejava.util.HashSetjava.util.TreeSetjava.util.HashMapjava.util.LinkedHashMapjava.util.TreeMapObjectsLinkedList<LibraryBook> library = new LinkedList<LibraryBook>();(You'll need to
import java.util.LinkedList)
LibraryBooks (or subclasses of
LibraryBook, if any)
library.addLast(new Cow()); // error
LibraryBook b = library.getFirst();
class SSLNode<T> {
T element;
SSLNode next;
public SSLNode(T item, SSLNode nextnode) {
element = item;
next = nextnode;
}
}
class SLinkedList<T> {
private SSLNode first;
private int size;
public SLinkedList() {
first = null;
size = 0;
}
public String toString() {
String outstr = "-";
SSLNode node = first;
while (node != null) {
outstr = outstr + node.element.toString() + "-";
node = node.next;
}
return outstr;
}
public void addLast(T element) {
SSLNode newnode = new SSLNode<T>(element, null);
if (first == null) {
first = newnode;
} else {
SSLNode node = first;
while (node.next != null) {
node = node.next;
}
node.next = newnode;
}
size = size + 1;
}
}
class ListTester {
public static void main(String[] args) {
SLinkedList<String> mylist = new SLinkedList<String>();
mylist.addLast("a");
mylist.addLast("b");
mylist.addLast("c");
System.out.println(mylist);
}
}
LibraryBook offers two constructors, three getters,
and several setters (takeOut, bringBack and
two versions of acquire)
java.util.LinkedList offers two constructors and
nearly 60 methods
interface Stack {
public void push(Object element);
public Object pop();
public Object top();
public int length();
public boolean isEmpty();
}
class ArrayBasedStack implements Stack {
private Object[] s;
private int capacity;
private int size;
public ArrayBasedStack(int capacity) {
this.capacity = capacity;
s = new Object[capacity];
}
public void push(Object element) {
if (size == capacity) {
return;
}
s[size] = element;
size = size + 1;
}
public Object pop() {
if (size == 0) {
return null;
}
size = size - 1;
return s[size];
}
public Object top() {
if (size == 0) {
return null;
}
return s[size - 1];
}
public int length() {
return size;
}
public boolean isEmpty() {
return size == 0;
}
}
import java.util.LinkedList;
class LinkedListBasedStack implements Stack {
private LinkedList s;
public LinkedListBasedStack() {
s = new LinkedList();
}
public void push(Object element) {
s.addFirst(element);
}
public Object pop() {
return s.remove();
}
public Object top() {
if (s.size() == 0) {
return null;
}
return s.getFirst();
}
public int length() {
return s.size();
}
public boolean isEmpty() {
return s.isEmpty();
}
}
Stack s1; Stack s2; s1 = new ArrayBasedStack(10); s2 = new LinkedListBasedStack();
s1.push(new Cow());
s2.push("Hi")
LinkedListBasedStack to an ArrayBasedStack
in code that doesn't use Java interfaces:
public void method1() {
LinkedListBasedStack s = new LinkedListBasedStack();
s.push(new Cow());
method2.(s);
method3(s);
}
public void method2(LinkedListBasedStack st) {
System.out.println(st.top());
}
public void method2(LinkedListBasedStack st) {
st.push(new Pig());
}
LinkedListBasedStack
to using an ArrayBasedStack in code that does use Java interfaces:
public void method1() {
Stack s = new LinkedListBasedStack();
s.push(new Cow());
method2.(s);
method3(s);
}
public void method2(Stack st) {
System.out.println(st.top());
}
public void method2(Stack st) {
st.push(new Pig());
}