Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
1.1 kB
1
Indexable
#include <stdio.h>
#include <stdlib.h>
#include "pilasListas.h"
#include "glist.h"

typedef GList Pila;
typedef FuncionDestructora destroy;

Pila pila_crear(){
    return glist_crear();
}

void pila_destruir(Pila pila, FuncionDestructora destroy){
    glist_destruir(pila, destroy);
}

int pila_es_vacia(Pila pila){
    return glist_vacia(pila);
}

int pila_tope(Pila pila){
    GNode* nodoAux = pila;
    for(;nodoAux->next!=NULL; nodoAux=nodoAux->next);
    return nodoAux->data;
}

void pila_apilar(Pila pila, int dato){
    glist_agregar_final(pila, dato);
}

void pila_desapilar(Pila pila, FuncionDestructora destroy){
    GNode* nodoAux = pila;
    for(;nodoAux->next->next!=NULL; nodoAux=nodoAux->next);
    GNode* nodoAux2 = nodoAux->next;
    nodoAux->next = NULL;
    destroy(nodoAux2->data);
    free(nodoAux2);
}

void pila_imprimir(Pila pila, FuncionVisitante visit){
    glist_recorrer(pila, visit);
}


//Escriba una función que utilice una pila para revertir el orden de una lista simplemente enlazada.

void revertirSList(SList lista){
    SNodo* nodoAux = lista;
    
}