¿explica el mÉtodo de inicializaciÓn de un … · ¿explica el mÉtodo de inicializaciÓn de un...

13

Upload: truongnhi

Post on 02-Oct-2018

242 views

Category:

Documents


0 download

TRANSCRIPT

¿EXPLICA EL MÉTODO DE INICIALIZACIÓN DE UN PUNTERO MEDIANTE LA ASIGNACIÓN DINÁMICA DE MEMORIA.

método para inicializar un puntero, es mediante asignación dinámica de

memoria. Este método utiliza las funciones de asignación de memoria

malloc ( )

calloc ( ) ,

reallot ( )

free ( )

EXPLICA LA SINTAXIS DE DECLARAR PUNTEROS A PUNTEROS. DE UN EJEMPLO.

Un puntero puede apuntar a otra variable puntero. Este concepto se utiliza con

mucha frecuencia en programas complejos de C.

Para declarar un puntero a un puntero se hace preceder a la Para declarar un puntero a un puntero se hace preceder a la Para declarar un puntero a un puntero se hace preceder a la Para declarar un puntero a un puntero se hace preceder a la

variable variable variable variable con dos con dos con dos con dos asteriscos ( * * ) asteriscos ( * * ) asteriscos ( * * ) asteriscos ( * * ) ....

En el ejemplo siguiente ptr5 es un puntero a un puntero.

int valor-e = 100;

i n t *ptrl = &valor-e;

int **ptr5 = &ptrl;

ptri y y y y ptr5 son punteros.

NOMBRA Y EXPLICA LAS OPERACIONES QUE SE PUEDEN REALIZAR CON LISTAS ENLAZADAS.Una lista enlazada requiere unos controles para la gestión de los elementos

contenidos en ellas. Estos controles se manifiestan en forma de operaciones que

tendrán las siguientes funciones:

Declaración de los tipos nodo y puntero a nodo.

Inicialización o creación.

Insertar elementos en una lista.

Eliminar elementos de una lista.

Buscar elementos de una lista (comprobar la existencia de elementos en una lista).

Recorrer una lista enlazada (visitar cada nodo de la lista).

Comprobar si la lista está vacía.

EXPLICA LA SINTAXIS DE LA DECLARACIÓN DE UN VARIABLE PUNTERO.

as variables punteros han de ser declaradas antes de utilizarlas. La

declaración de una variable puntero debe indicar al compilador el tipo de dato al que

apunta el puntero;

para ello se hace preceder a su nombre con un asterisco (*), mediante el siguiente

formato:

<tipo de dato apuntado> *<identificador de puntero><tipo de dato apuntado> *<identificador de puntero><tipo de dato apuntado> *<identificador de puntero><tipo de dato apuntado> *<identificador de puntero>

Las estructuras de datos Las estructuras de datos Las estructuras de datos Las estructuras de datos pilaspilaspilaspilas y y y y colascolascolascolas quequequeque son probablemente las son probablemente las son probablemente las son probablemente las

utilizadas mas frecuentemente en los programas más usuales. Son estructuras de datos utilizadas mas frecuentemente en los programas más usuales. Son estructuras de datos utilizadas mas frecuentemente en los programas más usuales. Son estructuras de datos utilizadas mas frecuentemente en los programas más usuales. Son estructuras de datos que almacenan y recuperan sus elementosque almacenan y recuperan sus elementosque almacenan y recuperan sus elementosque almacenan y recuperan sus elementos

atendiendo a un estricto orden. Las pilas se conocen también como estructurasatendiendo a un estricto orden. Las pilas se conocen también como estructurasatendiendo a un estricto orden. Las pilas se conocen también como estructurasatendiendo a un estricto orden. Las pilas se conocen también como estructuras

LIFOLIFOLIFOLIFO ((((LastLastLastLast----in, in, in, in, firstfirstfirstfirst----outoutoutout, , , , último en entrarúltimo en entrarúltimo en entrarúltimo en entrar----primero en salir) primero en salir) primero en salir) primero en salir) y las colas comoy las colas comoy las colas comoy las colas como

estructuras estructuras estructuras estructuras FIFOFIFOFIFOFIFO ((((nirStnirStnirStnirSt----in, in, in, in, FirstFirstFirstFirst----outoutoutout, , , , primero en entrarprimero en entrarprimero en entrarprimero en entrar----primero en salirprimero en salirprimero en salirprimero en salir). ). ). ).

Entre las numerosas aplicaciones de las pilas destaca la evaluación de expresiones Entre las numerosas aplicaciones de las pilas destaca la evaluación de expresiones Entre las numerosas aplicaciones de las pilas destaca la evaluación de expresiones Entre las numerosas aplicaciones de las pilas destaca la evaluación de expresiones algebraicas, así como la organización de la memoria.algebraicas, así como la organización de la memoria.algebraicas, así como la organización de la memoria.algebraicas, así como la organización de la memoria.

Las colas tienen numerosas aplicaciones en el mundo de la computación: colas de Las colas tienen numerosas aplicaciones en el mundo de la computación: colas de Las colas tienen numerosas aplicaciones en el mundo de la computación: colas de Las colas tienen numerosas aplicaciones en el mundo de la computación: colas de mensajes, colas de tareas a realizar por una impresora, colas de prioridades.mensajes, colas de tareas a realizar por una impresora, colas de prioridades.mensajes, colas de tareas a realizar por una impresora, colas de prioridades.mensajes, colas de tareas a realizar por una impresora, colas de prioridades.

OPERACONES CON PILA.

La operación Insertar (La operación Insertar (La operación Insertar (La operación Insertar (pushpushpushpush) añade un elemento en la cima de la pila .) añade un elemento en la cima de la pila .) añade un elemento en la cima de la pila .) añade un elemento en la cima de la pila .

La operación Quitar (pop) elimina o saca un elemento de la pila. La Figura 15.3 La operación Quitar (pop) elimina o saca un elemento de la pila. La Figura 15.3 La operación Quitar (pop) elimina o saca un elemento de la pila. La Figura 15.3 La operación Quitar (pop) elimina o saca un elemento de la pila. La Figura 15.3

muestra una secuenciamuestra una secuenciamuestra una secuenciamuestra una secuencia

de operaciones Insertar y Quitar. El último elemento añadido a la pila es el primero de operaciones Insertar y Quitar. El último elemento añadido a la pila es el primero de operaciones Insertar y Quitar. El último elemento añadido a la pila es el primero de operaciones Insertar y Quitar. El último elemento añadido a la pila es el primero

que se quita de laque se quita de laque se quita de laque se quita de la

Novela

Enciclopedia

Diccionario

Figura 15.1. Figura 15.1. Figura 15.1. Figura 15.1. Pila de libros.

La declaración de una pila incluye los datos y operaciones ya citados anteriormente.La declaración de una pila incluye los datos y operaciones ya citados anteriormente.La declaración de una pila incluye los datos y operaciones ya citados anteriormente.La declaración de una pila incluye los datos y operaciones ya citados anteriormente.

1. Datos de la pila (tipo Ti 1. Datos de la pila (tipo Ti 1. Datos de la pila (tipo Ti 1. Datos de la pila (tipo Ti pouatpouatpouatpouat----a, que es conveniente definirlo mediante a, que es conveniente definirlo mediante a, que es conveniente definirlo mediante a, que es conveniente definirlo mediante typedeftypedeftypedeftypedef).).).).

2. Verificar que la pila no está llena antes de intentar insertar o poner (<<2. Verificar que la pila no está llena antes de intentar insertar o poner (<<2. Verificar que la pila no está llena antes de intentar insertar o poner (<<2. Verificar que la pila no está llena antes de intentar insertar o poner (<<push»upush»upush»upush»u)n )n )n )n elemento en laelemento en laelemento en laelemento en la

pila ; verificar que una pila no está vacía antes de intentar quitar sacar (pila ; verificar que una pila no está vacía antes de intentar quitar sacar (pila ; verificar que una pila no está vacía antes de intentar quitar sacar (pila ; verificar que una pila no está vacía antes de intentar quitar sacar (qmp~uqmp~uqmp~uqmp~u)n elemento )n elemento )n elemento )n elemento dededede

la pila. Si estas precondiciones no se cumplen se debe visualizar un mensaje de error y ella pila. Si estas precondiciones no se cumplen se debe visualizar un mensaje de error y ella pila. Si estas precondiciones no se cumplen se debe visualizar un mensaje de error y ella pila. Si estas precondiciones no se cumplen se debe visualizar un mensaje de error y el

programa debe terminar.programa debe terminar.programa debe terminar.programa debe terminar.

3. 3. 3. 3. r' i 1 =r' i 1 =r' i 1 =r' i 1 =ivacivacivacivac fa devuelve I (verdadero) si la pila está vacía y O (falso) en caso contrario.fa devuelve I (verdadero) si la pila está vacía y O (falso) en caso contrario.fa devuelve I (verdadero) si la pila está vacía y O (falso) en caso contrario.fa devuelve I (verdadero) si la pila está vacía y O (falso) en caso contrario.

4. 4. 4. 4. PiidllcndPiidllcndPiidllcndPiidllcnd devuelve 1 (verdadero) si la pila está llena y O (falso) en caso contrario. Estasdevuelve 1 (verdadero) si la pila está llena y O (falso) en caso contrario. Estasdevuelve 1 (verdadero) si la pila está llena y O (falso) en caso contrario. Estasdevuelve 1 (verdadero) si la pila está llena y O (falso) en caso contrario. Estas

5. 5. 5. 5. L, i m p i a L, i m p i a L, i m p i a L, i m p i a r'ir'ir'ir'i ~1 a . Se ~1 a . Se ~1 a . Se ~1 a . Se lirnpialirnpialirnpialirnpia o o o o vacía la pila, dejándola sin elementos y disponible para vacía la pila, dejándola sin elementos y disponible para vacía la pila, dejándola sin elementos y disponible para vacía la pila, dejándola sin elementos y disponible para otras tareas.otras tareas.otras tareas.otras tareas.

6. ~6. ~6. ~6. ~irn~d,e~vu,eirn~d,e~vu,eirn~d,e~vu,eirn~d,e~vu,e lvelvelvelve el valor situado en la cima de la pila, pero no se el valor situado en la cima de la pila, pero no se el valor situado en la cima de la pila, pero no se el valor situado en la cima de la pila, pero no se decrernentadecrernentadecrernentadecrernenta el el el el puntero de lapuntero de lapuntero de lapuntero de la

funciones se utilizan para verificar las operaciones del párrafo 2.funciones se utilizan para verificar las operaciones del párrafo 2.funciones se utilizan para verificar las operaciones del párrafo 2.funciones se utilizan para verificar las operaciones del párrafo 2.

pila, ya que la pila queda intacta.pila, ya que la pila queda intacta.pila, ya que la pila queda intacta.pila, ya que la pila queda intacta.

Insertar Insertar Insertar Insertar ((((pushpushpushpush))))

1.verificar si la pila no está llena.1.verificar si la pila no está llena.1.verificar si la pila no está llena.1.verificar si la pila no está llena.

2.Incrementar en 1 el puntero de la pila.2.Incrementar en 1 el puntero de la pila.2.Incrementar en 1 el puntero de la pila.2.Incrementar en 1 el puntero de la pila.

?.Almacenar elemento en la posición del puntero de la pila.?.Almacenar elemento en la posición del puntero de la pila.?.Almacenar elemento en la posición del puntero de la pila.?.Almacenar elemento en la posición del puntero de la pila.

Quitar Quitar Quitar Quitar (pop)(pop)(pop)(pop)

1.si la pila no está vacía.1.si la pila no está vacía.1.si la pila no está vacía.1.si la pila no está vacía.

2.Leer el elemento de la posición del puntero de la pila.2.Leer el elemento de la posición del puntero de la pila.2.Leer el elemento de la posición del puntero de la pila.2.Leer el elemento de la posición del puntero de la pila.

3.Decrementar en 1 el puntero de la pila.3.Decrementar en 1 el puntero de la pila.3.Decrementar en 1 el puntero de la pila.3.Decrementar en 1 el puntero de la pila.

Las operaciones de la pila definidas en Las operaciones de la pila definidas en Las operaciones de la pila definidas en Las operaciones de la pila definidas en la especificación la especificación la especificación la especificación se implementan en el archivo se implementan en el archivo se implementan en el archivo se implementan en el archivo

PILAARRAY.CPILAARRAY.CPILAARRAY.CPILAARRAY.C para para para para después formar un proyecto con otros módulos y la función principal.después formar un proyecto con otros módulos y la función principal.después formar un proyecto con otros módulos y la función principal.después formar un proyecto con otros módulos y la función principal.

/ * / * / * / * ARCHIVO PILAARRAY.C* ARCHIVO PILAARRAY.C* ARCHIVO PILAARRAY.C* ARCHIVO PILAARRAY.C* ////

#include #include #include #include ««««pilaarray.hpilaarray.hpilaarray.hpilaarray.h""""

/ * Inicializa / * Inicializa / * Inicializa / * Inicializa lalalala pila pila pila pila vaciavaciavaciavacia* * * * ////

void void void void CrearPilaCrearPilaCrearPilaCrearPila(Pila* (Pila* (Pila* (Pila* P)P)P)P)

p p p p ----> cima = > cima = > cima = > cima = ----1;1;1;1;

COLAS.

Una cola es una estructura de datos que almacena elementos en una lista y permite Una cola es una estructura de datos que almacena elementos en una lista y permite Una cola es una estructura de datos que almacena elementos en una lista y permite Una cola es una estructura de datos que almacena elementos en una lista y permite

acceder a los datosacceder a los datosacceder a los datosacceder a los datos

por uno de los dos extremos de la .por uno de los dos extremos de la .por uno de los dos extremos de la .por uno de los dos extremos de la .

Un elemento se inserta en la cola (parte final) de laUn elemento se inserta en la cola (parte final) de laUn elemento se inserta en la cola (parte final) de laUn elemento se inserta en la cola (parte final) de la

lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista. Las lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista. Las lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista. Las lista y se suprime o elimina por la frente (parte inicial, cabeza) de la lista. Las

aplicaciones utilizan unaaplicaciones utilizan unaaplicaciones utilizan unaaplicaciones utilizan una

cola para almacenar elementos en su orden de aparición o concurrenciacola para almacenar elementos en su orden de aparición o concurrenciacola para almacenar elementos en su orden de aparición o concurrenciacola para almacenar elementos en su orden de aparición o concurrencia

OPERACIONES CON COLA.

Acciones Acciones Acciones Acciones que están permitidas en una cola que están permitidas en una cola que están permitidas en una cola que están permitidas en una cola son:son:son:son:

Creación Creación Creación Creación de una cola vacía.de una cola vacía.de una cola vacía.de una cola vacía.

Verificación de que una cola Verificación de que una cola Verificación de que una cola Verificación de que una cola estdestdestdestd vacía.vacía.vacía.vacía.

Añadir Añadir Añadir Añadir un dato al final de una cola.un dato al final de una cola.un dato al final de una cola.un dato al final de una cola.

Eliminación de los datos de la cabeza de la cola.Eliminación de los datos de la cabeza de la cola.Eliminación de los datos de la cabeza de la cola.Eliminación de los datos de la cabeza de la cola.