SlideShare una empresa de Scribd logo
1 de 3
Colas 2do ejercicio
#include <stdio.h>

#include <stdlib.h>

typedef struct _nodo {

 int valor;

 struct _nodo *siguiente;

} tipoNodo;

typedef tipoNodo *pNodo;

/* Funciones con colas: */

void Anadir(pNodo *primero, pNodo *ultimo, int v);

int Leer(pNodo *primero, pNodo *ultimo);



int main() {

 pNodo primero = NULL, ultimo = NULL;

 Anadir(&primero, &ultimo, 20);

 printf("Añadir(20)n");

 Anadir(&primero, &ultimo, 10);

 printf("Añadir(10)n");

 printf("Leer: %dn", Leer(&primero, &ultimo));

 Anadir(&primero, &ultimo, 40);

 printf("Añadir(40)n");

 Anadir(&primero, &ultimo, 30);

 printf("Añadir(30)n");

 printf("Leer: %dn", Leer(&primero, &ultimo));

 printf("Leer: %dn", Leer(&primero, &ultimo));
Anadir(&primero, &ultimo, 90);

    printf("Añadir(90)n");

    printf("Leer: %dn", Leer(&primero, &ultimo));

    printf("Leer: %dn", Leer(&primero, &ultimo));

    getchar();

    return 0;

}

void Anadir(pNodo *primero, pNodo *ultimo, int v) {

    pNodo nuevo;



    /* Crear un nodo nuevo */

    nuevo = (pNodo)malloc(sizeof(tipoNodo));

    nuevo->valor = v;

    /* Este será el último nodo, no debe tener siguiente */

    nuevo->siguiente = NULL;

    /* Si la cola no estaba vacÃ-a, añadimos el nuevo a continuación de ultimo */

    if(*ultimo) (*ultimo)->siguiente = nuevo;

    /* Ahora, el último elemento de la cola es el nuevo nodo */

    *ultimo = nuevo;

 /* Si primero es NULL, la cola estaba vacÃ-a, ahora primero apuntará también al nuevo nodo
*/

    if(!*primero) *primero = nuevo;

}



int Leer(pNodo *primero, pNodo *ultimo) {

    pNodo nodo; /* variable auxiliar para manipular nodo */
int v;   /* variable auxiliar para retorno */



    /* Nodo apunta al primer elemento de la pila */

    nodo = *primero;

    if(!nodo) return 0; /* Si no hay nodos en la pila retornamos 0 */

    /* Asignamos a primero la dirección del segundo nodo */

    *primero = nodo->siguiente;

    /* Guardamos el valor de retorno */

    v = nodo->valor;

    /* Borrar el nodo */

    free(nodo);

    /* Si la cola quedó vacÃ-a, ultimo debe ser NULL también*/

    if(!*primero) *ultimo = NULL;

    return v;

}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Clase4 tallereje
Clase4 tallerejeClase4 tallereje
Clase4 tallereje
 
Lista circulares doblemente enlazadas
Lista circulares doblemente enlazadasLista circulares doblemente enlazadas
Lista circulares doblemente enlazadas
 
Codigos
CodigosCodigos
Codigos
 
Ejemplos recursividad.docx
Ejemplos recursividad.docxEjemplos recursividad.docx
Ejemplos recursividad.docx
 
Deteccion de Ciclos en c
Deteccion de Ciclos en cDeteccion de Ciclos en c
Deteccion de Ciclos en c
 
Punteros
PunterosPunteros
Punteros
 
Practicas de programacion 11 20
Practicas de programacion 11 20Practicas de programacion 11 20
Practicas de programacion 11 20
 
Cifrado del cesar
Cifrado del cesarCifrado del cesar
Cifrado del cesar
 
Arreglos. lidia
Arreglos. lidiaArreglos. lidia
Arreglos. lidia
 
Pila vacia
Pila vaciaPila vacia
Pila vacia
 
Colas
ColasColas
Colas
 
Funciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenierosFunciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenieros
 
Gotoxy
GotoxyGotoxy
Gotoxy
 
JavaScript funciones
JavaScript funcionesJavaScript funciones
JavaScript funciones
 
Implementacion
ImplementacionImplementacion
Implementacion
 
Tema3 p2%20
Tema3 p2%20Tema3 p2%20
Tema3 p2%20
 
Strpbrk
StrpbrkStrpbrk
Strpbrk
 
Introducción a Javascript
Introducción a JavascriptIntroducción a Javascript
Introducción a Javascript
 
Clase 11 De Septiembre 2009
Clase 11 De Septiembre 2009Clase 11 De Septiembre 2009
Clase 11 De Septiembre 2009
 

Similar a Colas 2do ejercicio

Jyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc X
 
Proyecto estructura
Proyecto estructuraProyecto estructura
Proyecto estructuramercy
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Partecarpio
 
Funcionamiento de un pila2
Funcionamiento de un pila2Funcionamiento de un pila2
Funcionamiento de un pila2jefer
 
Funcionamiento de un pila2
Funcionamiento de un pila2Funcionamiento de un pila2
Funcionamiento de un pila2jefer
 
Informe tecnico u 5-victor uex
Informe tecnico u 5-victor uexInforme tecnico u 5-victor uex
Informe tecnico u 5-victor uexvictoruex
 
Coloreo de grafos
Coloreo de grafosColoreo de grafos
Coloreo de grafosJorge
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pilajefer
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y ColasAlex Pin
 
Informe metodos de ordenamiento
Informe metodos de ordenamientoInforme metodos de ordenamiento
Informe metodos de ordenamientoeliezerbs
 
Informe metodos de ordenamiento
Informe metodos de ordenamientoInforme metodos de ordenamiento
Informe metodos de ordenamientoeliezerbs
 
135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptxiq72024016
 
informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento- informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento- Eliu Osseas Puc Puc
 

Similar a Colas 2do ejercicio (20)

Jyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilasJyoc java-cap20 listas, colas y pilas
Jyoc java-cap20 listas, colas y pilas
 
7
77
7
 
pila cola arboles
pila cola arbolespila cola arboles
pila cola arboles
 
Proyecto estructura
Proyecto estructuraProyecto estructura
Proyecto estructura
 
Estructura de datos I Primera Parte
Estructura de datos I Primera ParteEstructura de datos I Primera Parte
Estructura de datos I Primera Parte
 
6-Pilas.pdf
6-Pilas.pdf6-Pilas.pdf
6-Pilas.pdf
 
Funcionamiento de un pila2
Funcionamiento de un pila2Funcionamiento de un pila2
Funcionamiento de un pila2
 
Funcionamiento de un pila2
Funcionamiento de un pila2Funcionamiento de un pila2
Funcionamiento de un pila2
 
Informe tecnico u 5-victor uex
Informe tecnico u 5-victor uexInforme tecnico u 5-victor uex
Informe tecnico u 5-victor uex
 
Coloreo de grafos
Coloreo de grafosColoreo de grafos
Coloreo de grafos
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pila
 
Listas Pilas Colas
Listas Pilas ColasListas Pilas Colas
Listas Pilas Colas
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
Informe metodos de ordenamiento
Informe metodos de ordenamientoInforme metodos de ordenamiento
Informe metodos de ordenamiento
 
Informe metodos de ordenamiento
Informe metodos de ordenamientoInforme metodos de ordenamiento
Informe metodos de ordenamiento
 
135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx135042409-Estructuras-dinamicas-ppt.pptx
135042409-Estructuras-dinamicas-ppt.pptx
 
informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento- informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento-
 
Luciano guerrero
Luciano guerreroLuciano guerrero
Luciano guerrero
 
Strings
StringsStrings
Strings
 
Programación 1: funciones en C
Programación 1: funciones en CProgramación 1: funciones en C
Programación 1: funciones en C
 

Colas 2do ejercicio

  • 1. Colas 2do ejercicio #include <stdio.h> #include <stdlib.h> typedef struct _nodo { int valor; struct _nodo *siguiente; } tipoNodo; typedef tipoNodo *pNodo; /* Funciones con colas: */ void Anadir(pNodo *primero, pNodo *ultimo, int v); int Leer(pNodo *primero, pNodo *ultimo); int main() { pNodo primero = NULL, ultimo = NULL; Anadir(&primero, &ultimo, 20); printf("Añadir(20)n"); Anadir(&primero, &ultimo, 10); printf("Añadir(10)n"); printf("Leer: %dn", Leer(&primero, &ultimo)); Anadir(&primero, &ultimo, 40); printf("Añadir(40)n"); Anadir(&primero, &ultimo, 30); printf("Añadir(30)n"); printf("Leer: %dn", Leer(&primero, &ultimo)); printf("Leer: %dn", Leer(&primero, &ultimo));
  • 2. Anadir(&primero, &ultimo, 90); printf("Añadir(90)n"); printf("Leer: %dn", Leer(&primero, &ultimo)); printf("Leer: %dn", Leer(&primero, &ultimo)); getchar(); return 0; } void Anadir(pNodo *primero, pNodo *ultimo, int v) { pNodo nuevo; /* Crear un nodo nuevo */ nuevo = (pNodo)malloc(sizeof(tipoNodo)); nuevo->valor = v; /* Este será el último nodo, no debe tener siguiente */ nuevo->siguiente = NULL; /* Si la cola no estaba vacÃ-a, añadimos el nuevo a continuación de ultimo */ if(*ultimo) (*ultimo)->siguiente = nuevo; /* Ahora, el último elemento de la cola es el nuevo nodo */ *ultimo = nuevo; /* Si primero es NULL, la cola estaba vacÃ-a, ahora primero apuntará también al nuevo nodo */ if(!*primero) *primero = nuevo; } int Leer(pNodo *primero, pNodo *ultimo) { pNodo nodo; /* variable auxiliar para manipular nodo */
  • 3. int v; /* variable auxiliar para retorno */ /* Nodo apunta al primer elemento de la pila */ nodo = *primero; if(!nodo) return 0; /* Si no hay nodos en la pila retornamos 0 */ /* Asignamos a primero la dirección del segundo nodo */ *primero = nodo->siguiente; /* Guardamos el valor de retorno */ v = nodo->valor; /* Borrar el nodo */ free(nodo); /* Si la cola quedó vacÃ-a, ultimo debe ser NULL también*/ if(!*primero) *ultimo = NULL; return v; }