Professional Documents
Culture Documents
Implementa una clase que modele una lista enlazada simple. Debes seguir
los siguientes pasos:
1. Lee detenidamente los requisitos funcionales de la clase.
2. Piensa en el diseo de la estructura de datos. Heredar de alguna
otra clase? Implementar alguna interfaz? Utilizar objetos de
alguna otra clase? Te ser til tener papel y boli a mano.
3. En paralelo a la implementacin de la clase que se pide, programa
una clase de prueba que simplemente cree un objeto de tipo lista
enlazada simple y ponga a prueba sus diferentes mtodos.
La clase que programes se deber llamar MySimpleLinkedList. Utiliza para ello
una estructura interna de tipo Node(tendrs que programar dicha clase). Los
mtodos pblicos que debe ofrecer la clase MySimpleLinkedList son:
: Devuelve
TRUE
FALSE
o no vaca.
Node.java
public class Node {
private Object info;
private Node next;
public Node() {
info = null;
next = null;
}
public Node(Object o, Node n) {
setInfo(o);
setNext(n);
}
public void setInfo(Object o) {
info = o;
}
public void setNext(Node n) {
next = n;
}
public Object getInfo() {
return info;
}
MySimpleLinkedList.java
public class MySimpleLinkedList {
// the reference to the first node is enough
// to characterize a list
protected Node first;
// a list is created in an empty state
public MySimpleLinkedList() {
first = null;
}
// the new element is located before the
// former first node
public void insert(Object o) {
// step by step code. Could be done in less lines
// a node that stores the object and links nowhere
Node tmp = new Node(o, null);
MySimpleLinkedListTest.java
public class MySimpleLinkedListTest {
public static void main(String args[]) {
// just instantiate one object and call the methods.
// I'm sure you can do it better than this code
MySimpleLinkedList sll = new MySimpleLinkedList();
sll.insert(new
sll.insert(new
sll.insert(new
sll.insert(new
sll.insert(new
Integer(1));
Integer(2));
Integer(3));
Integer(4));
Integer(5));
sll.print();
sll.print(0);
sll.print(1);
sll.print(2);
sll.print(3);
sll.print(4);
System.out.println(sll.extract());
System.out.println(sll.extract());
System.out.println(sll.extract());
System.out.println(sll.extract());
System.out.println(sll.extract());
}
sll.print();
Implementa una clase que modele una lista enlazada. Puedes basarte
en MySimpleLinkedList. Debes seguir los siguientes pasos:
1. Lee detenidamente los requisitos funcionales de la clase. Asegurate
de que has entendido la descripcin de cada uno de los mtodos a
implementar.
2. Piensa en el diseo de la estructura de datos. Heredar de alguna
otra clase? Implementar alguna interfaz? Utilizar objetos de
alguna otra clase? Te ser til tener papel y boli a mano.
3. En paralelo a la implementacin de la clase que se pide, programa
una clase de prueba que simplemente cree un objeto de tipo lista
enlazada simple y ponga a prueba sus diferentes mtodos.
La clase que programes se deber llamar MyAdvancedLinkedList. Los mtodos
pblicos que debe ofrecer dicha clase son:
}
// extract the object in a specific position
public Object extract(int n) {
if (n <= 0 ||
isEmpty() ||
first.getNext() == null) { // only one element
return extract();
}
// find previous (n-1 element or next-to-last)
Node prev;
{
prev = first;
Node current = first.getNext();
int i = 1; // index of current
// search until last is found or current position is n
// meanwhile update prev, current and i
while (current.getNext() != null && i != n) {
prev = current;
current = current.getNext();
i++;
}
// actual extraction
Object info = prev.getNext().getInfo();
prev.setNext(prev.getNext().getNext());
return info;