Porque para que una lista tenga contenido debe tener un nodo en donde "alojar" ese contenido, entonces en un método se crea la lista y en otro se crea el nodo con su enlace y su contenido.
en vista de que felipe no implemento los metodos que pedio la profesora y solo implemneto los que se hiceron en clase envio mi versionde la lista sencilla ... por medio del link puden accerder al codigo ...
Felipe C., esa no es precisamente la respuesta. Al método constructor sin parámetros se le delega la responsabilidad de crear la lista vacía. El segundo método tiene la responsabilidad de inicializar la lista con un objeto.
¿Por qué se necesitan dos constructores a la hora de elaborar una lista? (El que responda tiene bono)
ResponderEliminarPorque para que una lista tenga contenido debe tener un nodo en donde "alojar" ese contenido, entonces en un método se crea la lista y en otro se crea el nodo con su enlace y su contenido.
ResponderEliminarSi Se;or Felipe
ResponderEliminaralgo como así
nodo(Object valor){
dato=valor;
siguiente=null;
}
nodo (Object valor,nodo siguientenodo){
datos=valor;
siguiente=siguientenodo;
}
public class Lista {
ResponderEliminarprivate Nodo primero;
private int cont;
public Lista() {
int cont = 0;
primero = new Nodo(null);
}
public Lista(Object obj) {
primero = new Nodo(obj);
cont = 1;
}
public int size() {
return cont;
}
public void insertar(Object obj) {
if (cont == 0) {
primero.setContenido(obj);
} else {
Nodo temp = this.primero;
while (temp.getEnlace() != null) {
temp = temp.getEnlace();
}
Nodo nTemp = new Nodo(obj);
temp.setEnlace(nTemp);
}
cont++;
}
public void insertar(int Index, Object obj) {
if (Index <= cont) {
Nodo temp = this.primero;
for (int i = 0; i < Index - 1; i++) {
temp = temp.getEnlace();
}
Nodo nTemp = new Nodo(obj);
Nodo temp2 = temp.getEnlace();
temp.setEnlace(nTemp);
temp = temp.getEnlace();
temp.setEnlace(temp2);
cont++;
}
}
public void eliminar(int Index) {
if (Index <= cont) {
Nodo temp = this.primero;
for (int i = 0; i < Index - 1; i++) {
temp = temp.getEnlace();
}
Nodo temp2 = temp.getEnlace().getEnlace();
temp.setEnlace(null);
temp.setEnlace(temp2);
temp = null;
cont--;
}
}
public Object consultarObjeto(int Index) {
Nodo temp = this.primero;
int conta = 0;
if (Index <= cont) {
while (conta != Index) {
temp = temp.getEnlace();
conta++;
}
}
return temp.getContenido();
}
public Object[] toArray() {
Object[] obj = new Object[cont];
Nodo temp = this.primero;
for (int i = 0; i < cont; i++) {
obj[i] = temp.getContenido();
temp = temp.getEnlace();
}
return obj;
}
public ArrayList toArrayList() {
ArrayList arraylist = new ArrayList();
Nodo temp = this.primero;
for (int i = 0; i < cont; i++) {
arraylist.add(temp.getContenido());
temp = temp.getEnlace();
}
return arraylist;
}
public Vector toVector() {
Vector vector = new Vector();
Nodo temp = this.primero;
for (int i = 0; i < cont; i++) {
vector.add(temp.getContenido());
temp = temp.getEnlace();
}
return vector;
}
public boolean estaVacio() {
ResponderEliminarboolean estaVacio = false;
if (cont == 0) {
estaVacio = true;
}
return estaVacio;
}
pues hay dejo lo que consegui a ver si alguien lo puede mejorar y me avisa
public Lista clone() {
Lista clone = new Lista(this.getPrimero());
return clone;
}
public void intercambioNodos(int Index, int Index2) {
if (Index <= cont && Index2 <= cont) {
Nodo temp1 = this.primero;
Nodo temp2 = new Nodo(null);
temp2.setContenido(temp1.getContenido());
temp2.setEnlace(temp1.getEnlace());
for (int i = 0; i < Index - 1; i++) {
temp1 = temp1.getEnlace();
}
for (int i = 0; i < Index2 - 1; i++) {
temp2 = temp2.getEnlace();
}
eliminar(Index-1);
insertar(Index-1, temp2.getContenido());
eliminar(Index2-1);
insertar(Index2-1, temp1.getContenido());
}
}
public void setCont(int cont) {
this.cont = cont;
}
public void setPrimero(Nodo primero) {
this.primero = primero;
}
public int getCont() {
return cont;
}
public Nodo getPrimero() {
return primero;
}
}
public class Nodo {
ResponderEliminarprivate Nodo enlace;
private Object contenido;
public Nodo(Object contenido){
this.contenido = contenido;
this.enlace = enlace;
}
public Object getContenido() {
return contenido;
}
public void setContenido(Object contenido) {
this.contenido = contenido;
}
public Nodo getEnlace() {
return enlace;
}
public void setEnlace(Nodo enlace) {
this.enlace = enlace;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
Le falto modificar
ResponderEliminaryo creo que así puede servir ese método
public void modificar (Object cosa, int num){
int otro = 0;
if(num<=cuantos) {
Nodo clon = this.inicio;
while(otro<num){
clon = clon.getEnlace();
otro++;
}
veo que falta un cupo para lista sensilla
ResponderEliminarpublic class ListaSencilla {
private Nodo nodo1;
public ListaSencilla() {
nodo1 = null;
}
public Nodo getNodo1() {
return nodo1;
}
public void adicionarObjeto(Object objeto) {
while (true) {
if (nodo1 == null) {
nodo1 = new Nodo(objeto);
break;
} else {
nodo1 = new Nodo(objeto, nodo1);
break;
}
}
}
public int longitud() {
Nodo tem = nodo1;
int i;
for (i = 0; tem != null; i++) {
tem = tem.siguienteNodo();
}
return i;
}
public int consulPos (Object objeto){
Nodo tem = nodo1;
int pos = 0;
for (int i = 0; tem != null ; i++) {
if (tem.getObjeto() == objeto) {
pos = i;
break;
}
tem = tem.siguienteNodo();
}
return pos;
}
public boolean vacia(){
boolean vacia = false;
if (nodo1 == null) {
vacia = true;
}
return vacia;
}
public Nodo consulNodo(int posicion){
Nodo tem = nodo1;
for (int i = 0; i < posicion; i++) {
tem = tem.siguienteNodo();
}
return tem;
}
}
public class Nodo {
ResponderEliminarprivate Nodo enlace;
private Object objeto;
public Nodo(Object objeto) {
this.objeto = objeto;
enlace = null;
}
public Nodo(Object objeto, Nodo enlace) {
this.enlace = enlace;
this.objeto = objeto;
}
public Object getObjeto() {
return objeto;
}
public Nodo siguienteNodo() {
return enlace;
}
public String toString() {
return objeto.toString();
}
}
en vista de que felipe no implemento los metodos que pedio la profesora y solo implemneto los que se hiceron en clase envio mi versionde la lista sencilla ... por medio del link puden accerder al codigo ...
ResponderEliminarhttp://sabestructuras.blogspot.com/
Felipe C., esa no es precisamente la respuesta. Al método constructor sin parámetros se le delega la responsabilidad de crear la lista vacía. El segundo método tiene la responsabilidad de inicializar la lista con un objeto.
ResponderEliminarWilliam, tu enlace está a medias!!
ResponderEliminarPara este entrada Cristian tiene un bono.
ResponderEliminar