listas doblemente enlazadas
Publicado por anyra (10 intervenciones) el 22/03/2008 01:48:53
hola, hace poco estoy manejando el tema de listas(simples como doblemente enlazadas) pero soy un poco novata...es hacer un MP4 q tiene varias carpetas y estas a su vez tienen archivo con los metodos buscar,insertar y mostrar., ya lo tengo casi hecho pero tengo problemas en el main y el metodo mostrar..y qria ver si me podrian ayudar con este programa q es el sig:
class Carpeta{
Carpeta ste,ant;
Archivo ste2;
String nombre,extension;
int tamaño;
Carpeta(){
ste=null;
ant=null;
ste2=null;
nombre=Leer.cadena("Nombre de la carpeta: ");
tamaño=0;
}
}
class Archivo{
Archivo ste3,ant2;
String nombre,extension;
int peso;
Archivo(){
ste3=null;
ant2=null;
nombre=Leer.cadena("Nombre del archivo:");
extension=Leer.cadena("Extension: ");
peso=Leer.entero("Tamaño: ");
}
}
class Lista{
Carpeta NI;
Lista(){
NI=null;
}
//METODOS DE LAS CARPETAS
public void insertar_carpeta(Carpeta c){
Carpeta aux=NI;
if(NI==null) NI=c;
else { while(aux.ste!=null)
aux=aux.ste;
aux.ste=c;
c.ant=aux;
}
}
public Carpeta buscarC(String nc){
Carpeta aux=NI;
if(NI==null){
System.out.println("no hay carpetas");
return null;
}
else{
while(!(nc.equals(aux.nombre)) && aux.ste!=null)
aux=aux.ste;
if (!(nc.equals(aux.nombre))){
System.out.println("no se encuentra la carpeta");
return null;
}
else{
System.out.println("la carpeta si esta");
return aux;
}
}
}
// METODOS DEL ARCHIVO
public void insertarA(String c, Archivo a){
Archivo aux;
if(NI!=null){
Carpeta car=buscarC(c);
if(car!=null){
aux=car.ste2;
if(aux==null)
car.ste2=a;
else {
while(aux.ste3!=null)
aux=aux.ste3;
aux.ste3=a;
a.ant2=aux;
car.tamaño+=a.peso;
}
}
}
else System.out.println("no hay carpetas");
}
public Archivo buscarA(String NA, String NC){
Carpeta car=buscarC(NC);
if(car!=null){
Archivo Aux=car.ste2;
if(Aux!=null){
while(Aux.ste3!=null && !(NA.equals(Aux.nombre)))
Aux=Aux.ste3;
if(!(NA.equals(Aux.nombre)))
System.out.println("EL ARCHIVO NO EXISTE");
else return Aux;
}
}
else return null;
}
}
class Prueba{
public static void main(String args[]){
Lista L=new Lista(); //creacion del objeto
int x;
int op;
BufferedeReader br=new BufferedReader(new InputStreamReader(System.in));
do{
System.out.println("1.Ingresar Carpeta ");
System.out.println("2.Buscar Carpeta ");
System.out.println("3.Mostrar Carpeta ");
System.out.println("4.Ingresar Archivo ");
System.out.println("5.Buscar Archivo");
System.out.println("6.Mostrar Archivo");
System.out.print(" Ingrese la opcion: ");
op=Integer.parseInt(br.readLine());
switch(op)
{
case 1 Y 4:System.out.println(" Ingreso los datos a la lista "){
//COMO LE MANDO AQUI LOS DATOS PARA EL METODOS INSERTAR
SI LO QUE RECIBE EL METODO ES UN NODO(CARPETA)
NO ENTIENDO MY BIEN STA PARTE
}
break;
case 2 Y 5:
//AJA AKI LE MANDO ES UN STRING
break;
case 3 Y 6 :
------------------------------->
//NO SE COMO SERIA EL METODO MOSTRAR Y COMO LO MANDO DESDE AQUI
break;
}
}while(op!=0);
}
}
}
bueno agradeceria su ayuda lo mas pronto posible ......
porfiiii ayudenme
cyaa¡¡¡¡¡
class Carpeta{
Carpeta ste,ant;
Archivo ste2;
String nombre,extension;
int tamaño;
Carpeta(){
ste=null;
ant=null;
ste2=null;
nombre=Leer.cadena("Nombre de la carpeta: ");
tamaño=0;
}
}
class Archivo{
Archivo ste3,ant2;
String nombre,extension;
int peso;
Archivo(){
ste3=null;
ant2=null;
nombre=Leer.cadena("Nombre del archivo:");
extension=Leer.cadena("Extension: ");
peso=Leer.entero("Tamaño: ");
}
}
class Lista{
Carpeta NI;
Lista(){
NI=null;
}
//METODOS DE LAS CARPETAS
public void insertar_carpeta(Carpeta c){
Carpeta aux=NI;
if(NI==null) NI=c;
else { while(aux.ste!=null)
aux=aux.ste;
aux.ste=c;
c.ant=aux;
}
}
public Carpeta buscarC(String nc){
Carpeta aux=NI;
if(NI==null){
System.out.println("no hay carpetas");
return null;
}
else{
while(!(nc.equals(aux.nombre)) && aux.ste!=null)
aux=aux.ste;
if (!(nc.equals(aux.nombre))){
System.out.println("no se encuentra la carpeta");
return null;
}
else{
System.out.println("la carpeta si esta");
return aux;
}
}
}
// METODOS DEL ARCHIVO
public void insertarA(String c, Archivo a){
Archivo aux;
if(NI!=null){
Carpeta car=buscarC(c);
if(car!=null){
aux=car.ste2;
if(aux==null)
car.ste2=a;
else {
while(aux.ste3!=null)
aux=aux.ste3;
aux.ste3=a;
a.ant2=aux;
car.tamaño+=a.peso;
}
}
}
else System.out.println("no hay carpetas");
}
public Archivo buscarA(String NA, String NC){
Carpeta car=buscarC(NC);
if(car!=null){
Archivo Aux=car.ste2;
if(Aux!=null){
while(Aux.ste3!=null && !(NA.equals(Aux.nombre)))
Aux=Aux.ste3;
if(!(NA.equals(Aux.nombre)))
System.out.println("EL ARCHIVO NO EXISTE");
else return Aux;
}
}
else return null;
}
}
class Prueba{
public static void main(String args[]){
Lista L=new Lista(); //creacion del objeto
int x;
int op;
BufferedeReader br=new BufferedReader(new InputStreamReader(System.in));
do{
System.out.println("1.Ingresar Carpeta ");
System.out.println("2.Buscar Carpeta ");
System.out.println("3.Mostrar Carpeta ");
System.out.println("4.Ingresar Archivo ");
System.out.println("5.Buscar Archivo");
System.out.println("6.Mostrar Archivo");
System.out.print(" Ingrese la opcion: ");
op=Integer.parseInt(br.readLine());
switch(op)
{
case 1 Y 4:System.out.println(" Ingreso los datos a la lista "){
//COMO LE MANDO AQUI LOS DATOS PARA EL METODOS INSERTAR
SI LO QUE RECIBE EL METODO ES UN NODO(CARPETA)
NO ENTIENDO MY BIEN STA PARTE
}
break;
case 2 Y 5:
//AJA AKI LE MANDO ES UN STRING
break;
case 3 Y 6 :
------------------------------->
//NO SE COMO SERIA EL METODO MOSTRAR Y COMO LO MANDO DESDE AQUI
break;
}
}while(op!=0);
}
}
}
bueno agradeceria su ayuda lo mas pronto posible ......
porfiiii ayudenme
cyaa¡¡¡¡¡
Valora esta pregunta


0