Programadores a mi

Adoradores de la NES, seguidores del pingüino, Gafa-Pastas afiliados al iPod, histéricos del emule...
Avatar de Usuario
rianxeira
Ulema
Mensajes: 18423
Registrado: 24 Nov 2003 04:10
Ubicación: Medio planeta
Contactar:

Programadores a mi

Mensaje por rianxeira »

A ver, tengo un pequeñito problema, me han pedido que implemente una lista doblemente enlazada genérica ordenada. Se como hacer una generica de cualquier tipo, se como hacer una ordenada de cualquier tipo, pero no se hacer una que cumla las dos condiciones.

Lo unico que se me ha ocurrido es crear un objeto comparable compuesto de el dato a introducir y la clave de ordenación que será lo que almacene la lista, el problema es que de esta forma siempre obligo a que se introduzca una clave, y no estoy seguro de que me hayan pedido eso. ¿Alguien tiene alguna idea? busco algo por google y no encuentro nada que me sirva. No me esta permitido utilizr la api de java. el objeto a introducir obviamente tiene que tener una clave string por la que sera ordenado, pero en ningun momento me dicen que la tenga que introducir el usuario. ¿Habría alguna forma de implementarlo?

Avatar de Usuario
arafat
Pichón
Mensajes: 7263
Registrado: 06 Nov 2002 18:44
Ubicación: Santaella

Mensaje por arafat »

¿Por qué no pones la estructura de la clase para que nos quedemos más tranquilos?
El perrico, definiendo la HAMBROSIA a ma112nu escribió:Un curasán aceitoso y calentico chorreando en el plato, la sonrisa de un niño, las ttks, un perolo de gazpacho manchego con medio kilo de pan para mojar, las ttks, las pelis de chinos dándose hostias, los ninjas, Mr. T, Mr.T luchando contra los ninjas, cualquier animal comestible, las ttks, correr desnudo por la playa alrededor de la gente mientras silbo el opening de battlestar galactica, la shandy cruzcampo de abadía belga, los torreznos, cualquier cosa rebozada, cagar en espiral, cosas asín, manu, cosas asín.

Avatar de Usuario
Navajo
Pedazo de cabrón nativo
Mensajes: 3319
Registrado: 25 Feb 2003 23:13

Mensaje por Navajo »

Yo te iba a decir como hacerlo, pero como a todo me lo sacas pegas que te den por culo.

Avatar de Usuario
Pazita
Marmotilla
Mensajes: 2088
Registrado: 19 Feb 2004 23:48
Ubicación: entre cajas de cartón

Mensaje por Pazita »

Indio, estás tela de aburrido hoy eh?!
El sexo es un derecho humano

Avatar de Usuario
rianxeira
Ulema
Mensajes: 18423
Registrado: 24 Nov 2003 04:10
Ubicación: Medio planeta
Contactar:

Mensaje por rianxeira »

No me han dado ninguna, solo me han dicho eso y que puedo buscarme la vida por internet, en palabras del profesor tiene que ser una lista que si el llega y mete objetos de la clase platano los mete ordenados, y si son peras lo mismo, y si son los que utilizaemos mas adelante (agenda, imagenes y sonidos,el programa general es un simulador de movil moltimedia con texto predictivo) tambien nos lo met ordenaos, pero no nos dice nada mas y tampoco puedo ir a tutorias a preguntar porque las pone todas elmismo dia que lo manda y no acepta las que no sean en esas horas.

Basicamente lo que tengo pensado es la clase lista, que odena nodos, con los nodos compuestos de objetos comparabls, que a su vez estan compuestos del objeto a introducir y la clave

Yo te iba a decir como hacerlo, pero como a todo me lo sacas pegas que te den por culo.

Es que el palo de polo no me sirve

Avatar de Usuario
arafat
Pichón
Mensajes: 7263
Registrado: 06 Nov 2002 18:44
Ubicación: Santaella

Mensaje por arafat »

Pues así no me entero rancheritas.
El perrico, definiendo la HAMBROSIA a ma112nu escribió:Un curasán aceitoso y calentico chorreando en el plato, la sonrisa de un niño, las ttks, un perolo de gazpacho manchego con medio kilo de pan para mojar, las ttks, las pelis de chinos dándose hostias, los ninjas, Mr. T, Mr.T luchando contra los ninjas, cualquier animal comestible, las ttks, correr desnudo por la playa alrededor de la gente mientras silbo el opening de battlestar galactica, la shandy cruzcampo de abadía belga, los torreznos, cualquier cosa rebozada, cagar en espiral, cosas asín, manu, cosas asín.

Avatar de Usuario
curreta
Ulema
Mensajes: 5584
Registrado: 26 Abr 2003 10:27
Ubicación: Razón Aqui.

Mensaje por curreta »

Yo es que ni lo he leido.
A la vuelta pasé por al lado de la tuya casa, saqué la cabesa desde mi hauto y grité: CHURETICAS!

una bandada de gabiotar alzó el vuelo, el sol iba sumerjiendose entre las montañias y solo me contestó el eco de mi propia vos...

Avatar de Usuario
rianxeira
Ulema
Mensajes: 18423
Registrado: 24 Nov 2003 04:10
Ubicación: Medio planeta
Contactar:

Mensaje por rianxeira »

gññ, bueno, a ver, los apuntes de clase:

Implement a new class , a generic sorted list, this list must include double link

Head---->element--->element--->null
null<---- <---

The content is an object element, we can search google for implementation help

to test this list in the main program we create objects and introduce them in the list

we can create the three class of objects for the mobile, there are only properties

we will use an extra propertie named explorer that will be an auxiliar reference to navigate in the list
explorerReset() points the explorer to the first node of the list
explorerForward() move the explorer one position foward
explorerBackward()move the explorer one position backward
object explorerCheck(){
return(explorer.getloaded())
}
this method returns the content of the node pointed by the explorer

example:
list.explorerReset();
while(list.getExplorer()!=NULL)
(bananas).List.explorerCheck()).print();
list.explorerForward;

this code print the entire list

the objects must have a getKey() method than returns a string and permit sorted them


Y lo que tengo implementado que dudo que funcione

package movil;

Código: Seleccionar todo

public class List {

  private Node header;
  private Node explorer;

  public List() {

  }

  public void add(Comparable data) {
    Node aux;
    Node auxback;
    Node temp;
    aux = header;
    auxback = header;
    while ( (aux != null) &&
           (data.getKey().compareToIgnoreCase( ( (Comparable) aux.getData()).
                                              getKey()) > 0)) {
      auxback = aux;
      aux = aux.getNextNode();
    }
    temp = new Node(data);
    auxback.setNextNode(temp);
    temp.setPrevNode(auxback);
    temp.setNextNode(aux);
    aux.setPrevNode(temp);
  }

  public void delete(Comparable data){
    Node aux;
    Node auxback;
    aux = header;
    auxback = header;
    while ( (aux != null) &&
           (data.getKey().compareToIgnoreCase( ( (Comparable) aux.getData()).
                                              getKey()) != 0)) {
      auxback = aux;
      aux = aux.getNextNode();
    }
    auxback.setNextNode(aux.getNextNode());
    aux=aux.getNextNode();
    aux.setPrevNode(auxback);
  }

  public boolean isEmpty(){
    if (header==null){
      return true;
    }
    return false;
  }

  public void explorerReset(){
    explorer=header;
  }

  public void explorerForward(){
    if (explorer.getNextNode()!=null)
      explorer=explorer.getNextNode();
  }

  public void explorerBackward(){
    if (explorer.getPrevNode()!=null)
      explorer=explorer.getPrevNode();
  }

  public Object explorerCheck(){
    return explorer.getData();
  }
}

Código: Seleccionar todo

public class Node {

  private Comparable data;
  private Node prevNode;
  private Node nextNode;

  public Node(Comparable data) {
    this.data=data;
    prevNode=null;
    nextNode=null;
  }

  public Comparable getData(){
    return data;
  }

  public Node getPrevNode(){
    return prevNode;
  }

  public Node getNextNode(){
    return nextNode;
  }

  public void setData(Comparable data){
    this.data=data;
  }

  public void setPrevNode(Node node){
    prevNode=node;
  }

  public void setNextNode(Node node){
    nextNode=node;
  }

}


Código: Seleccionar todo

public class Comparable {

  private Object data;
  private String key;

  public Comparable(Object data, String key) {
    this.data=data;
    this.key=key;
  }

  public void setData(Object data){
    this.data=data;
  }

  public void setKey(String key){
    this.key=key;
  }

  public Object getData(){
    return data;
  }

  public String getKey(){
    return key;
  }

}


Cmo veras con este codigo obligo al usuario a meter una clave de ordenacion cuando introduce el objeto, y queria evitar eso, descarto asignar yo la clave por codigo porque a priori yo n se que me van a meter ni como deberia ordenarlo

Avatar de Usuario
arafat
Pichón
Mensajes: 7263
Registrado: 06 Nov 2002 18:44
Ubicación: Santaella

Mensaje por arafat »

¿Si no metes una clave/campo/atributo de ordenación como coño vas a ordenar la lista sino rancheritas?
El perrico, definiendo la HAMBROSIA a ma112nu escribió:Un curasán aceitoso y calentico chorreando en el plato, la sonrisa de un niño, las ttks, un perolo de gazpacho manchego con medio kilo de pan para mojar, las ttks, las pelis de chinos dándose hostias, los ninjas, Mr. T, Mr.T luchando contra los ninjas, cualquier animal comestible, las ttks, correr desnudo por la playa alrededor de la gente mientras silbo el opening de battlestar galactica, la shandy cruzcampo de abadía belga, los torreznos, cualquier cosa rebozada, cagar en espiral, cosas asín, manu, cosas asín.

Avatar de Usuario
rianxeira
Ulema
Mensajes: 18423
Registrado: 24 Nov 2003 04:10
Ubicación: Medio planeta
Contactar:

Mensaje por rianxeira »

A eso voy, pa mi que el pavo se explico mal y no nos pide lo que nos pidió yo de moemtno le entreg este codigo y que se la pique un pollo pero como inssite tanto en que sino sabemos algo usemos internet, que si la lista tiene que ser totalmnte generica y pollas en vinagre pues pense que a lo mejor habia una forma de hacerlo, que cosas mas raras he visto

Responder