SlideShare una empresa de Scribd logo
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

DOCX
Colas 1er ejercicio
DOCX
Lista enlazada 2 parcial
DOCX
tipos de operadores
PDF
Script de Punteros a Funciones
DOCX
Tipos de operadores_dulce_velazquez
DOCX
Tipos de operadores
DOCX
Tipos de operadores_velazquez
Colas 1er ejercicio
Lista enlazada 2 parcial
tipos de operadores
Script de Punteros a Funciones
Tipos de operadores_dulce_velazquez
Tipos de operadores
Tipos de operadores_velazquez

La actualidad más candente (19)

PDF
Clase4 tallereje
DOCX
Lista circulares doblemente enlazadas
DOCX
Codigos
DOCX
Ejemplos recursividad.docx
TXT
Deteccion de Ciclos en c
PPT
Punteros
DOCX
Practicas de programacion 11 20
DOCX
Cifrado del cesar
PPTX
Arreglos. lidia
DOCX
Pila vacia
PPT
PPTX
Funciones de Cadenas/ Computación para ingenieros
PPTX
Gotoxy
PPTX
JavaScript funciones
PDF
Implementacion
PPT
PDF
Introducción a Javascript
PPT
Clase 11 De Septiembre 2009
Clase4 tallereje
Lista circulares doblemente enlazadas
Codigos
Ejemplos recursividad.docx
Deteccion de Ciclos en c
Punteros
Practicas de programacion 11 20
Cifrado del cesar
Arreglos. lidia
Pila vacia
Funciones de Cadenas/ Computación para ingenieros
Gotoxy
JavaScript funciones
Implementacion
Introducción a Javascript
Clase 11 De Septiembre 2009
Publicidad

Similar a Colas 2do ejercicio (20)

PDF
Jyoc java-cap20 listas, colas y pilas
PDF
PROGRAMACION DE PILAS JAVA ORIENTACION DE OBJETOS.pdf
PPTX
DOC
pila cola arboles
PPTX
Proyecto estructura
PPTX
Estructura de datos I Primera Parte
PDF
PPTX
Funcionamiento de un pila2
PPTX
Funcionamiento de un pila2
PDF
Informe tecnico u 5-victor uex
TXT
Coloreo de grafos
PPTX
Funcionamiento de un pila
PPT
Listas Pilas Colas
DOCX
Pilas y Colas
PDF
Informe metodos de ordenamiento
PDF
Informe metodos de ordenamiento
PPTX
135042409-Estructuras-dinamicas-ppt.pptx
PDF
informe unidad 5 -Metodos de ordenamiento-
TXT
Luciano guerrero
PDF
Strings
Jyoc java-cap20 listas, colas y pilas
PROGRAMACION DE PILAS JAVA ORIENTACION DE OBJETOS.pdf
pila cola arboles
Proyecto estructura
Estructura de datos I Primera Parte
Funcionamiento de un pila2
Funcionamiento de un pila2
Informe tecnico u 5-victor uex
Coloreo de grafos
Funcionamiento de un pila
Listas Pilas Colas
Pilas y Colas
Informe metodos de ordenamiento
Informe metodos de ordenamiento
135042409-Estructuras-dinamicas-ppt.pptx
informe unidad 5 -Metodos de ordenamiento-
Luciano guerrero
Strings
Publicidad

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