Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* CABECERA */
- #ifndef PREG12_H
- #define PREG12_H
- typedef int TElemento;
- typedef struct nodo{
- TElemento elem;
- struct nodo* ptrSig;
- }TNodo;
- typedef struct lista{
- TNodo *inicio;
- TNodo *fin;
- int cantElem;
- }TLista;
- void crearLista(TLista *);
- void listaUnitaria(TLista *, TElemento);
- void anadeIzq (TLista *, TElemento);
- void imprimirLista(TLista*);
- int kesimoElemento(TLista*,TElemento);
- #endif /* PREG12_H */
- /* IMPLEMENTACION */
- #include <stdio.h>
- #include <stdlib.h>
- #include "preg12.h"
- void crearLista(TLista *lista){
- lista->inicio = NULL;
- lista->fin = NULL;
- lista->cantElem = 0;
- }
- void listaUnitaria(TLista *lista, TElemento elem){
- TNodo *ptrNuevo;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->elem = elem;
- ptrNuevo->ptrSig = NULL;
- lista->inicio = ptrNuevo;
- lista->fin = ptrNuevo;
- lista->cantElem = 1;
- }
- void anadeIzq(TLista *lista, TElemento elem){
- TNodo *ptrNuevo;
- ptrNuevo = (TNodo*)malloc(sizeof(TNodo));
- ptrNuevo->elem = elem;
- ptrNuevo->ptrSig = NULL;
- if (lista->inicio == NULL){
- listaUnitaria(lista,elem);
- }else{
- ptrNuevo->ptrSig = lista->inicio;
- lista->inicio = ptrNuevo;
- }
- (lista->cantElem)++;
- }
- void imprimirLista(TLista *lista){
- TNodo *ptrRec;
- ptrRec = lista->inicio;
- while(ptrRec){
- printf("%5d",ptrRec->elem);
- ptrRec = ptrRec->ptrSig;
- }
- printf(" NULL\n");
- }
- TElemento kesimoElemento(TLista *lista,TElemento k){
- TNodo *ptrK, *ptrRec;
- ptrRec = lista->inicio;
- ptrK = lista->inicio;
- int i;
- for(i=0;i<k;i++)
- ptrK = ptrK->ptrSig;
- while (ptrK){
- ptrRec = ptrRec->ptrSig;
- ptrK = ptrK->ptrSig;
- }
- return (ptrRec->elem);
- }
- /* MAIN */
- #include <stdio.h>
- #include <stdlib.h>
- #include "preg12.h"
- int main(int argc, char** argv) {
- TLista lista;
- crearLista(&lista);
- anadeIzq(&lista,4);
- anadeIzq(&lista,6);
- anadeIzq(&lista,8);
- anadeIzq(&lista,2);
- anadeIzq(&lista,13);
- anadeIzq(&lista,7);
- anadeIzq(&lista,34);
- anadeIzq(&lista,1);
- imprimirLista(&lista);
- int num,k;
- k = 3;
- num = kesimoElemento(&lista,k);
- printf("El kesimo numero es: %d\n",num);
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement