Ejemplo Lista Lineal

Post on 14-Jul-2016

226 views 2 download

description

listas

Transcript of Ejemplo Lista Lineal

Programación No Numérica I

primero

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

1- Lista<int> ListaNumeros

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

ListaNumeros

NULL

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

? Ap

primero

ListaNumeros

NULL

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

Info

der

?

?

? Ap

primero

ListaNumeros

NULL

nuevo=new Nodo<Tipo>;

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

Info

der

5

?

? Ap

primero

ListaNumeros

NULL

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(Valor);

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

Info

der

5

NULL

? Ap

primero

ListaNumeros

NULL

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(Valor);nuevo->AsigDer(primero):

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

Info

der

5

NULL

? Ap

primero

ListaNumeros

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(Valor);nuevo->AsigDer(primero);primero=nuevo;

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

Info

der

5

NULL

Ap

primero

ListaNumeros

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

Info

der

5

NULL

Ap

primero

ListaNumeros

Info

der

?

?

nuevo=new Nodo<Tipo>;

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

Info

der

5

NULL

Ap

primero

ListaNumeros

Info

der

-8

?

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(valor);

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

Info

der

5

NULL

Ap

primero

ListaNumeros

Info

der

-8

NULL

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(valor);nuevo->AsigDer(p->btDer());

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

NULL

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(valor);nuevo->AsigDer(p->btDer());p->AsigDer(nuevo);

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

NULL

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

NULL

Info

der

nuevo=new Nodo<Tipo>;

?

?

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeroa.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

NULL

Info

der

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(valor);

-10

?

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeroa.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

NULL

Info

der

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(valor);nuevo->AsigDer(p->tDer());

-10

NULL

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeroa.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

Info

der

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(valor);nuevo->AsigDer(p->tDer());p->AsigDer(nuevo);

-10

NULL

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeroa.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

8-Ap=Ap->ObtDer();

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

Info

der

-10

NULL

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

8-Ap=Ap->ObtDer();

9-ListaNumero.InsComienzo(7);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

Info

der

-10

NULL

nuevo=new Nodo<Tipo>;

Info

der

?

?

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

8-Ap=Ap->ObtDer();

9-ListaNumero.InsComienzo(7);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

Info

der

-10

NULL

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(Valor);

Info

der

7

?

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

8-Ap=Ap->ObtDer();

9-ListaNumero.InsComienzo(7);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

Info

der

-10

NULL

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(Valor);nuevo->AsigDer(primero);

Info

der

7

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

8-Ap=Ap->ObtDer();

9-ListaNumero.InsComienzo(7);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

Info

der

-10

NULL

nuevo=new Nodo<Tipo>;nuevo->AsigInfo(Valor);nuevo->AsigDer(primero);

Info

der

7

Programación No Numérica I

OPERACIONES DE UNA LISTA LINEAL SIMPLEMENTE ENLAZADA

Seguimiento en memoria de las instrucciones de una aplicación que carga un Lista Lineal de números enteros, colocando los positivos de primero en la lista y los negativos al final de la lista

Instrucciones del Programa Objetos en Memoria Estática Objetos en Memoria Dinámica .

1- Lista<int> ListaNumeros;

2- Nodo<int>* Ap;

3-ListaNumero.InsComienzo(5);

4- Ap=ListaNumeros.ObtPrimero();

5-ListaNumeros.InsDerecho(Ap,-8);

6-Ap=Ap->ObtDer();

7-ListaNumeros.InsDerecho(Ap,-10);

8-Ap=Ap->ObtDer();

9-ListaNumero.InsComienzo(7);

Info

der

5

Ap

primero

ListaNumeros

Info

der

-8

Info

der

-10

NULL

Info

der

7

Elementos en la Lista : 7,5,-8,-10