Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct nodo{
- int valor;
- struct nodo* ptrSig;
- }TNodo;
- int lista_vacia(TNodo *);
- void inserta_inicio(TNodo **, int);
- void imprime_lista(TNodo *);
- void libera_lista(TNodo *);
- void bubbleSort(TNodo *);
- void inserta_inicio(TNodo **ptrListaSE, int valor){
- TNodo *ptrNuevo;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->valor = valor;
- ptrNuevo->ptrSig = *ptrListaSE;
- *ptrListaSE = ptrNuevo;
- }
- int lista_vacia(TNodo * ptrListaSE){
- return ptrListaSE==NULL;
- }
- void imprime_lista(TNodo * ptrListaSE){
- while (ptrListaSE != NULL){
- /*printf(" %d ", (*ptrListaSE).valor);*/
- printf(" %d ", ptrListaSE->valor);
- ptrListaSE = ptrListaSE->ptrSig;
- }
- printf("NULL\n");
- }
- void libera_lista(TNodo * ptrListaSE){
- TNodo * ptrEliminar;
- while (ptrListaSE != NULL){
- ptrEliminar = ptrListaSE;
- ptrListaSE = ptrListaSE->ptrSig;
- free(ptrEliminar);
- }
- }
- /* function to swap data of two nodes a and b*/
- void swap(TNodo *a, TNodo *b)
- {
- int temp = a->valor;
- a->valor = b->valor;
- b->valor = temp;
- }
- void bubbleSort(TNodo *ptrListaSE)
- {
- int swapped, i;
- TNodo *ptr1;
- TNodo *lptr = NULL;
- /* Lista Vacia? */
- if (ptr1 == NULL)
- return;
- do
- {
- swapped = 0;
- ptr1 =ptrListaSE;
- while (ptr1->ptrSig != lptr)
- {
- if (ptr1->valor > ptr1->ptrSig->valor)
- {
- swap(ptr1, ptr1->ptrSig);
- swapped = 1;
- }
- ptr1 = ptr1->ptrSig;
- }
- lptr = ptr1;
- }
- while (swapped);
- }
- int main(int argc, char** argv) {
- TNodo * ptrListaSE = NULL;
- TNodo * ptrUltimo = NULL;
- inserta_inicio(&ptrListaSE, 19);
- inserta_inicio(&ptrListaSE, 15);
- inserta_inicio(&ptrListaSE, 17);
- inserta_inicio(&ptrListaSE, 20);
- bubbleSort(ptrListaSE);
- imprime_lista(ptrListaSE);
- libera_lista(ptrListaSE);
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement