G
gornik
Gast
Ich habe diese data files:
List.java
ListLinkedNode.java
ListLinked.java
test.java
Ich will ins ListLinked "s" schreiben "marmelade".
Wie soll ich dass machen.
List.java
Code:
public abstract class List{
public abstract void makenull();
public abstract Object first();
public abstract Object last();
public abstract Object next(Object pos);
public abstract Object previous(Object pos);
public abstract Object end();
public abstract Object retrieve(Object pos);
public abstract void insert(Object x);
public abstract void insert(Object x, Object pos);
public abstract void delete(Object pos);
public abstract boolean overEnd(Object pos);
public abstract boolean empty();
}
Code:
class ListLinkedNode {
Object element;
ListLinkedNode next;
ListLinkedNode() {
element = null;
next = null;
}
ListLinkedNode(Object elm) {
this(elm, null);
}
ListLinkedNode(Object elm, ListLinkedNode nxt){
element = elm;
next = nxt;
}
}
Code:
public class ListLinked extends List {
protected ListLinkedNode first, last;
public ListLinked(){
makenull();
}
public void makenull(){
first = new ListLinkedNode(null, null);
last = null;
}
public Object first(){
return first;
}
public Object last(){
return last;
}
public Object next(Object pos){
return ((ListLinkedNode) pos).next;
}
public Object end(){
if(first.next == null){
return first;
}else{
return last.next;
}
}
public boolean overEnd(Object pos){
if(((ListLinkedNode) pos).next == null){
return true;
}else{
return false;
}
}
public boolean empty(){
if(last == null){
return true;
}else{
return false;
}
}
public Object retrieve(Object pos){
return ((ListLinkedNode) pos).next.element;
}
public void insert(Object x){
if(last==null){
insert(x,first);
}else{
insert(x,last.next);
}
}
public void insert(Object x,Object pos){
ListLinkedNode newElement = new ListLinkedNode(x, ((ListLinkedNode)pos).next);
((ListLinkedNode)pos).next = newElement;
if(last==null){
last = first;
}else if(last.next==pos){
last = (ListLinkedNode)pos;
}
}
public void delete(Object pos){
ListLinkedNode temp = ((ListLinkedNode)pos).next;
((ListLinkedNode)pos).next = ((ListLinkedNode)pos).next.next;
if(temp == last){
last = (ListLinkedNode)pos;
}else if(pos==last){
if(pos==first){
last=null;
}else{
last=first;
while(last.next.next != null){
last=last.next;
}
}
}
}
public Object previous(Object pos){
ListLinkedNode temp = first;
while(temp.next != pos && temp.next != null){
temp = temp.next;
}
if(temp.next == null){
return null;
}else{
return temp;
}
}
public void concatenate(ListLinked s1, ListLinked s2){
if(s1.empty()){
first = s2.first;
last = s2.last;
s2.makenull();
}else if(s2.empty()){
first = s1.first;
last = s1.last;
s1.makenull();
}else{
first = s1.first;
last = s2.last;
s1.last.next.next = s2.first.next;
s1.makenull();
s2.makenull();
}
}
public Object locate(Object x){
for(Object iter=first(); !overEnd(iter); iter=next(iter)){
if(x.equals(retrieve(iter))){
return iter;
}
}
return null;
}
public void printList(){
for(Object iter=first(); !overEnd(iter); iter=next(iter)){
System.out.print(retrieve(iter)+", ");
}
System.out.println();
}
}
test.java
Code:
public class test{
public static void main(String args[]){
ListLinked s = new ListLinked();
Object x = new String();
x = "marmelade";
seznam.insert(x);
System.out.print(seznam.retrieve(x));
}
}
Ich will ins ListLinked "s" schreiben "marmelade".
Wie soll ich dass machen.