Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "preg1.h"
- void crearLista(TLista *lista);
- void insertaOrden(TLista *lista, TElemento elem);
- void imprimeLista(TLista *lista);
- void imprimePosiciones(TLista *, TLista *);
- void crearLista(TLista *lista){
- lista->inicio = NULL;
- lista->fin = NULL;
- lista->cantElem = 0;
- }
- /*int tamanhoLista(TLista *lista){
- return (lista->cantElem);
- }*/
- void imprimirLista(TLista *lista){
- TNodo *ptrRec;
- ptrRec = lista->inicio;
- while (ptrRec != NULL){
- printf("%d ",ptrRec->elem);
- ptrRec = ptrRec->ptrSig;
- }
- printf("NULL\n");
- }
- void insertaOrden(TLista *lista, TElemento elem){
- TNodo *ptrNuevo;
- ptrNuevo =(TNodo *)malloc(sizeof(TNodo));
- ptrNuevo->elem = elem;
- ptrNuevo->ptrSig = NULL;
- TNodo *ptrAnt;
- TNodo *ptrRec;
- ptrRec = lista->inicio;
- ptrAnt = NULL;
- while (ptrRec != NULL && ptrRec->elem < elem ){
- ptrAnt = ptrRec;
- ptrRec = ptrRec->ptrSig;
- }
- if (ptrAnt == NULL){ //Nunca entro al while
- if (ptrRec == NULL){ //No hay elementos
- lista->inicio = ptrNuevo;
- lista->fin = ptrNuevo;
- }
- else{ //Inserto al comienzo
- ptrNuevo->ptrSig = lista->inicio;
- lista->inicio = ptrNuevo;
- }
- }
- else{ //Si entro al while
- if (ptrRec == NULL){ //Inserto al final
- ptrAnt->ptrSig = ptrNuevo;
- lista->fin = ptrNuevo;
- }
- else{ //Inserto en el medio
- ptrNuevo->ptrSig = ptrRec;
- ptrAnt->ptrSig = ptrNuevo;
- }
- }
- (lista->cantElem)++;
- }
- void imprimePosiciones(TLista *lista, TLista *pos){
- int cont = 1;
- TNodo *ptrRecLista;
- TNodo *ptrRecPos;
- ptrRecLista = lista->inicio;
- ptrRecPos = pos->inicio;
- while (ptrRecPos != NULL){
- if (ptrRecPos->elem == cont){
- printf("%d ",ptrRecLista->elem);
- ptrRecPos = ptrRecPos->ptrSig;
- }
- ptrRecLista = ptrRecLista->ptrSig;
- cont++;
- }
- }
- /*
- * File: main.c
- * Author: alulab11
- *
- * Created on 23 de mayo de 2014, 03:20 PM
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include "preg1.h"
- typedef int TElemento;
- typedef struct nodo {
- TElemento elem;
- struct nodo* ptrSig;
- }TNodo;
- typedef struct lista{
- TNodo *inicio;
- TNodo *fin;
- int cantElem;
- }TLista;
- /*
- *
- */
- int main(int argc, char** argv) {
- TLista lista1;
- TLista lista2;
- TLista listaOrd;
- crearLista(&lista1);
- insertaOrden(&lista1,1);
- insertaOrden(&lista1,2);
- insertaOrden(&lista1,6);
- insertaOrden(&lista1,10);
- insertaOrden(&lista1,9);
- insertaOrden(&lista1,7);
- insertaOrden(&lista1,22);
- insertaOrden(&lista1,12);
- insertaOrden(&lista1,8);
- insertaOrden(&lista1,14);
- insertaOrden(&lista1,15);
- imprimirLista(&lista1);
- //printf("%d",tamanholista(&lista));
- crearLista(&lista2);
- insertaOrden(&lista2,2);
- insertaOrden(&lista2,1);
- insertaOrden(&lista2,5);
- insertaOrden(&lista2,8);
- imprimirLista(&lista2);
- imprimePosiciones(&lista1, &lista2);
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement