vitorhls 0 Denunciar post Postado Abril 15, 2008 ESTE E O ALGORITMO Q ESTOU TRABALHANDO NELE! PRECISA DE AJUDAR PARA FAZER + 2 OPÇOES! 1- INCLUIR UM ELEMENTO EM QUALQUER POSIÇAO ENTRE O INICIO E O FIM DA LISTA. 2- EXCLUIR UM ELEMENTO EM ENTRE O INICIO E O FIM DA LISTA. CODE #include<stdlib.h>#include<conio.h> #include<stdio.h> struct no { int num; // elemento a ser armazenado na lista no *prox; // ponteiro para o proximo elemento }; no *ini, *fim; // ponteiro para inicio e fim da lista int n; // numero de elemento da lista ////////////////////////////////////////////////// void insere_ini(no **prim,no **ult, int *nelem) { no *aux; int valor; printf("Digite o elemento a ser inserido: "); scanf("%d",&valor); if(ini==NULL) { *prim=(no *)malloc(sizeof(no)); (*prim)->num=valor; (*prim)->prox=NULL; *ult=*prim; } else { aux=(no*)malloc(sizeof(no)); aux->prox=*prim; aux->num=valor; *prim=aux; } (*nelem)++; } ///////////////////////////////////////////////// void insere_fim(no **prim,no **ult,int *nelem) { no *aux; int valor; printf("Digite o elmento a ser inserido"); scanf("%d",&valor); if(ini==NULL) { *prim=(no *)malloc(sizeof(no)); (*prim)->num=valor; (*prim)->prox=NULL; *ult=*prim; } else { aux=(no *)malloc(sizeof(no)); (*ult)->prox=aux; aux->num=valor; aux->prox=NULL; *ult=aux; } (*nelem)++; } //////////////////////////////////////////////////// void exclui_prim(no **prim, no **ult, int *nelem) { no *aux; if(*prim==NULL) { printf("Lista vazia.."); getch(); } else { if(*prim==*ult) { free(*prim); *prim=NULL; *ult=NULL; } else { aux=*prim; *prim=(*prim)->prox; free(aux); } (*nelem)--; } } ////////////////////////////////////////////////// void exclui_ult(no **prim,no **ult, int *nelem) { no *aux; no *noatual=*prim; if(*ult==NULL) { printf("Lista vazia..."); getch(); } else { if(*prim==*ult) { free(*ult); free(*prim); *ult=NULL; *prim=NULL; } else { while(noatual->prox->prox!=NULL) { noatual=noatual->prox; } aux=*ult; *ult=noatual; (*ult)->prox=NULL; free(aux); } (*nelem)--; } } void listar(no *prim,int nelem) { int i=0; if(prim==NULL) { printf("\n\nLISTA VAZIA..."); } else { while(prim !=NULL) { i++; printf("\n%d§ elemento: %d",i,prim->num); prim=prim->prox; } printf("\n\nA LISTA POSSUI %d ELEMENTOS.",nelem); } } ///////////////////PROGRAMA PRINCIPAL//////////////// void main() { int opcao; ini=NULL;fim=NULL,n=0; do{ clrscr(); printf("[1]-INSERIR NO INICIO\n"); printf("[2]-INSERIR NO FINAL\n"); printf("[3]-EXCLUIR O PRIMEIRO\n"); printf("[4]-EXCLUIR O ULTIMO\n"); printf("[5]-LISTAR\n"); printf("[6]-SAIR \nDIGITE OPCAO: "); scanf("%d",&opcao); switch(opcao) { case 1: insere_ini(&ini,&fim,&n); break; case 2: insere_fim(&ini,&fim,&n); break; case 3: exclui_prim(&ini,&fim,&n); break; case 4: exclui_ult(&ini,&fim,&n); break; case 5: listar(ini,n); getch(); } } while(opcao!=6); } //////////////////////fim////////////////// AJUDA AI PESSOAL!!! FLW AI GALERA http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 15, 2008 vamos por partes: primeiro veja: http://forum.imasters.com.br/index.php?showtopic=274270 Compartilhar este post Link para o post Compartilhar em outros sites