Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* CABECERA */
- #ifndef PREG14_H
- #define PREG14_H
- typedef int TElemento;
- typedef struct nodo{
- TElemento elem;
- struct nodo* ptrSig;
- }TNodo;
- typedef struct{
- TNodo *inicio;
- TNodo *mitad;
- }TLista;
- void crear(TLista*);
- void insertar(TLista*, TElemento);
- void imprimir(TLista*);
- void eliminarMitad(TLista*);
- #endif /* PREG14_H */
- /* IMPLEMENTACION */
- #include <stdlib.h>
- #include <stdio.h>
- #include "preg14.h"
- void crear(TLista *lista){
- lista->inicio = NULL;
- }
- void insertar(TLista *lista, TElemento elem){
- TNodo *ptrNuevo;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->elem = elem;
- ptrNuevo->ptrSig = NULL;
- if (lista->inicio == NULL){
- lista->inicio = ptrNuevo;
- }else{
- ptrNuevo->ptrSig = lista->inicio;
- lista->inicio = ptrNuevo;
- }
- }
- void imprimir(TLista *lista){
- TNodo *ptrRec;
- ptrRec = lista->inicio;
- while (ptrRec != NULL){
- printf(" %d ",ptrRec->elem);
- ptrRec = ptrRec->ptrSig;
- }
- printf("NULL\n");
- }
- void eliminarMitad(TLista* lista){
- TNodo *ptrAux;
- ptrAux = lista->inicio;
- int i; // Si tuviera un cantElem, seria mejor
- for(i=0;i<4;i++)
- ptrAux = ptrAux->ptrSig;
- lista->mitad = ptrAux;
- TNodo *ptrEliminar;
- ptrEliminar = lista->mitad->ptrSig;
- lista->mitad->elem = lista->mitad->ptrSig->elem;
- lista->mitad->ptrSig = ptrEliminar->ptrSig;
- free(ptrEliminar);
- }
- /* MAIN */
- #include <stdio.h>
- #include <stdlib.h>
- #include "preg14.h"
- int main(int argc, char** argv) {
- TLista lista;
- crear(&lista);
- insertar(&lista,4);
- insertar(&lista,6);
- insertar(&lista,1);
- insertar(&lista,7);
- insertar(&lista,9);
- insertar(&lista,23);
- insertar(&lista,21);
- insertar(&lista,11);
- imprimir(&lista);
- eliminarMitad(&lista);
- imprimir(&lista);
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement