martes, 26 de julio de 2011

matriz de objeto

Ejemplos para una matriz d objetos :
Obj M[][] = { {new String  (“Ana”), new String(“Peres”)},
                       {new String (“Jose”), new String(“Peres”);}
                   }
Obj Mi[][] = {{new Integer(2020),new String(“Ana”)}
                               {new Integer(4050), new String (“Paz”)}
                             }
CUBO:
Obj cubo[][][] = {{{new Integer(2050), new String (“Ana”), new String (“Peres”)}
                                {new Integer(4050), new String (“Jose”),new String (“Paz”) }}
                            }
For(int i=o; i <= cubo.lenght; i++ ){
      For(int j=o; j <= cubo.lenght; j++ ){
            For(int k=0 ; k<=cobo.lenght; k++){
             Mostrar(cubo[i] [j] [k]);
             }
       }
}
Ejemplo: Registrar los datos de los vendedores del supermercado X
-          Cod vendedor
-          Nom completo
-          Direccion
-          Fono



ESTRUCTURA DINÁMICA:

Dinámicas lineales.- tiene lo que se conoce:
Dinamicas no lineales

LA CLASE NODO:
Public class Nodo (object obj){
            This (oj,null);
}
 Public Nodo (object obj, Nodo sig){
                          Dato == obj;
                          Enlace == sig; //Enlazdo
}
Public get dato(){
                         Return dato;
}

LISTA ENLASADA

Para lista Vacia:
Class Nodo(){
         Obj dato;
          Nodo sig;
Public Nodo (objct obj){
           Dato =0;
           Sig = null;
}
}
Para lista no vacia:
Public class Nodo(object 0 , Nodo n){
             dato =0;
              sig = n;
 objct getdato(){
        return dato;
Nodo get enlace (){--}
}
}

v  Lista Enlasada: la lista enlasada es una E,D, dinamica, formada por el conjunto de nodos, conesctados a atravez de un enlace (sig) que esta  definida basiamente por nombre, un enlace al primer nodo (elemento) y un enlace de ultimo nodo (elemento).
Operaciones:
Lista enlazada:
v  Operacionesa:
Ø  Constructores
Ø  Lista vacias
Constructor
Public datos (String (n)){
          Nombre = n;
          Prim = ultm = null
}
Public boolean ListaVacia(){
Return (prim == null);
}

                                                                  Lista Vacia
                                            Frente           ~ Lista vacia
v  Inserciones        Posterior
                                    Pos-n

a.- Insertar frente
  Lista Vacia





















public class COLA {
    private Lista listaCola;
    public COLA(){
     listaCola = new Lista("cola");
    }
    public void encolar(Object objeto){
      listaCola.InsertarPosterior(objeto);
    }
   
    public Object decolar() throws CasoListavacia{
      return listaCola.eliminarDelFrente();
    }
    public boolean estaVacia(){
     return listaCola.estaVacia();
    }
    public void imprimir(){
     listaCola.imprimir();
    }
   
}

public class Lista {
       
    private Nodo pri;
    private Nodo ult;
    private String nombre;
       
    public Lista(){
        this("lista");
    }
    public Lista(String NLista){
        nombre = NLista;
        pri = ult = null;
    }

    public boolean estaVacia(){
        return pri == null;
    }
    public void insertarAlFrente(Object intElemento){
       
        if(estaVacia())
            pri = ult = new Nodo(intElemento);
        else
            pri = new Nodo(intElemento, pri);
    }
    public void InsertarPosterior(Object intElemento){
        
        if(estaVacia())
            pri = ult = new Nodo(intElemento);
        else
            ult= ult.sig = new Nodo(intElemento);
    }
    public Object eliminarDelFrente() throws CasoListavacia{
        if(estaVacia())
           
            throw new CasoListavacia(nombre);
           
        Object elementoEliminado = pri.datos;
       
        if(pri == ult)
            pri = ult = null;
        else
            pri = pri.sig;
        return elementoEliminado;
    }
    public Object eliminarDelFinal() throws CasoListavacia{
       
        if(estaVacia())
           
            throw new CasoListavacia(nombre);
           
        Object AeliminarElemento = ult.datos;
           
        if(pri == ult)
            pri = ult = null;
        else{
            Nodo actual = pri;
           
            
        while(actual.sig != ult)
            actual = actual.sig;
       
        ult = actual;
        actual.sig = null;
        }
       return AeliminarElemento;
    }
   
    public void imprimir(){
       
        if(estaVacia()){
            System.out.printf("%s Vacia\n", nombre);
        return;
    }
        System.out.printf("La %s es: ", nombre);
        Nodo actual = pri;
       
        while(actual != null){
            System.out.printf("%s ", actual.datos);
            actual = actual.sig;
        }
        System.out.println("\n");
    }

        public class CasoListavacia extends RuntimeException{
       
         public CasoListavacia(){
            this("lista");
        }
         public CasoListavacia(String nombre){
             super(nombre + "Esta Vacia");
         }
        
    }
 }


public class Nodo {
   
    //miembros de acceso del paquete; lista puede accseder a ellos directamento
    Object datos;//los datos para este nodo
    Nodo sig;//referencia al siguiente nodo de la lista
   
    //el constructor crea un objeto Nodo que hace referencia al objeto
    Nodo(Object objeto){
        this(objeto, null);
    }
    Nodo(Object intElemento, Nodo nodo){
        datos = intElemento;
        sig = nodo;
    }
    Object obtenerObject(){
        return datos;
    }
    Nodo obtenerSiguiente(){
        return sig;
    }
   
    }
    



public class Pila extends Lista{
   
    public Pila(){
        super("pila");
    }
    public void push(Object objeto){
        insertarAlFrente(objeto);
    }
    public Object pop() throws CasoListavacia{
        return eliminarDelFrente();
    }
   
}



public class listadobleCircular{
//datoscamigables para que la clase lista tenga un acceso directo
Object datos;
listadobleCircular siguiente;
//Constructor crea un nodo de tipo Object
listadobleCircular(Object valor){
datos=valor;
siguiente=null;
}
//Constructor Crea un nodo de tipo Object y al siguiente nodo de la lista
listadobleCircular (Object valor,listadobleCircular signodo){
datos=valor;
siguiente=signodo; //siguiente se refiere al siguiente nodo
}
//Retorna el dato que se encuentra en ese nodo
Object getObject(){
return datos;
}
//Retorna el siguiente nodo
listadobleCircular getnext(){
return siguiente;
}
}

//Definicion de la clase ListaCircular
class ListaCircular{
listadobleCircular PrimerNodo;
String Nombre;
                                                                                                                       
//Constructor construye una lista vacia con un nombre s
public boolean VaciaLista(){
return PrimerNodo==null;
}
                                                                                                                       
//Imprime el contenido de la lista
public void Imprimir(){
if (VaciaLista()){
System.out.println("Vacia" + Nombre);
}
else{
System.out.print("La "+Nombre + " es: ");
listadobleCircular Actual=PrimerNodo.siguiente;
System.out.print(PrimerNodo.datos.toString()+" ");
while(Actual != PrimerNodo){
System.out.print(Actual.datos.toString()+" ");
Actual=Actual.siguiente;
}
System.out.println();
System.out.println();
}
}
                                                                                                                       
//Constructor
public ListaCircular(String s){
Nombre=s;
PrimerNodo=null;
}
                                                                                                                       
//Constructor
public ListaCircular(){
this ("Lista");
}
                                                                                                                       
//Inserta un elemento al frente de la lista
void InsertaInicio(Object ElemInser){
if(VaciaLista()){
PrimerNodo=new listadobleCircular(ElemInser);
PrimerNodo.siguiente=PrimerNodo;
}
else{
listadobleCircular aux=PrimerNodo;
while(aux.siguiente != PrimerNodo)
aux=aux.siguiente;
listadobleCircular tempo=new listadobleCircular (ElemInser);
aux.siguiente=tempo;
tempo.siguiente=PrimerNodo;
PrimerNodo=tempo;
}
}
                                                                                                                       
//Inserta al final de la lista
public void InsertaFinal(Object ElemInser){
if(VaciaLista()){
PrimerNodo=new listadobleCircular (ElemInser);
PrimerNodo.siguiente=PrimerNodo;
}
else{
listadobleCircular aux=PrimerNodo;
while(aux.siguiente != PrimerNodo)
aux=aux.siguiente;
listadobleCircular tempo=new listadobleCircular(ElemInser);
aux.siguiente=tempo;
tempo.siguiente=PrimerNodo;
 }
}
                                                                                                                       
//Inserta elemento en posicion dada
public void InsertaMedio(Object ElemInser,int Posicion){
if(VaciaLista()){
PrimerNodo=new listadobleCircular (ElemInser);
PrimerNodo.siguiente=PrimerNodo;
}
else{
if(Posicion<=1){
listadobleCircular Nuevo=new listadobleCircular(ElemInser);
Nuevo.siguiente=PrimerNodo;
PrimerNodo=Nuevo;
}
else{
listadobleCircular Aux=PrimerNodo;
int i=2;
while((i != Posicion) & (Aux.siguiente != PrimerNodo)){
i++;
                                                                                                                                                                            Aux=Aux.siguiente;
                                                                                                                                                             }
                                                                                                                                                             listadobleCircular Nuevo=new listadobleCircular(ElemInser);
Nuevo.siguiente=Aux.siguiente;
Aux.siguiente=Nuevo;
}
}
}
//Elimina al Inicio
public void EliminaInicio(){
if(VaciaLista())
System.out.println("No hay elementos");
else{
listadobleCircular aux=PrimerNodo;
while(aux.siguiente != PrimerNodo)
aux=aux.siguiente;
PrimerNodo=PrimerNodo.siguiente;
aux.siguiente=PrimerNodo;
}
}//Elimina al Final
public void EliminaFinal(){
if(VaciaLista())
System.out.println("No hay elementos");
else{
listadobleCircular aux=PrimerNodo;
listadobleCircular ac=null;
if(PrimerNodo==PrimerNodo.siguiente){
PrimerNodo=null;
}
else{
while(aux.siguiente != PrimerNodo){
ac=aux;
aux=aux.siguiente;
}
ac.siguiente=PrimerNodo;
}
}
}
//Retorna si un elemento es miembro
public boolean Miembro(Object ele){
boolean enc=false;
if(!VaciaLista()){
listadobleCircular aux=PrimerNodo.siguiente;
if(ele.equals(PrimerNodo.datos))
enc=true;
else{
while((aux != PrimerNodo) && (enc==false)){
if(ele.equals(aux.datos)){
enc=true;
}
else{
aux=aux.siguiente;
}
}
}
}
return enc;
}
}


 

1 comentario: