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);
}
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;
}
}





