Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <stdio.h> #include <stdlib.h> typedef int tipoelemento; typedef struct No { tipoelemento elemento; struct No *proximo; }TipoNo; void FazVazia(TipoNo **L) { if(*L != NULL) { TipoNo *atual,*proximo; atual = *L; while(atual != NULL) { proximo = atual->proximo; free(atual); atual = proximo; } *L = NULL; } system("cls"); printf(" LISTA VAZIA!\n"); system("pause"); } int inserir(TipoNo** L, int pos, tipoelemento E) { TipoNo *NovoNo; NovoNo = (TipoNo *)malloc(sizeof(TipoNo)); NovoNo->elemento = E; NovoNo->proximo = NULL; if(*L == NULL) { *L = NovoNo; } else { if(pos < 0) { printf(" Impossivel inserir (POSICAO INVALIDA!)\n"); } else { if(pos == 0) { NovoNo->proximo = *L; *L = NovoNo; } else { TipoNo *atual,*anterior; int cont; atual = *L; for(cont = 0;((cont<pos)&&(atual!=NULL));cont++) { anterior = atual; atual = anterior->proximo; } if(atual != NULL) { NovoNo->proximo = atual; } else { NovoNo->proximo = NULL; } anterior->proximo = NovoNo; } } } } int remover(TipoNo** L, int pos) { if(*L == NULL) { system("cls"); printf(" Impossivel excluir.(LISTA VAZIA!)\n"); } else { int i = 0; TipoNo *elementos; elementos = *L; while(elementos != NULL) { i++; elementos = elementos->proximo; } if((pos<0) || (pos>i)) { system("cls"); printf(" Impossivel excluir elemento. (POSICAO INVALIDA)\n"); } else { if(pos == 0) { TipoNo *atual; atual = *L; *L = atual->proximo; free(atual); } else { int cont; TipoNo *atual,*anterior; atual = *L; for(cont = 0;((cont<pos) && (atual != NULL));cont++); { anterior = atual; atual = anterior->proximo; } anterior->proximo = atual->proximo; free(atual); } } } } void imprimir(TipoNo** L) { if(*L == NULL) { system("cls"); printf(" Impossivel imprimir. (LISTA VAZIA!)\n\n\n"); } else { system("cls"); TipoNo *atual; atual = *L; printf(" "); while(atual != NULL) { printf("[%d] ", atual->elemento); atual = atual->proximo; } printf("\n\n\n"); } system("pause"); } int main() { TipoNo *lista = NULL; tipoelemento E; int pos,op; while(op != 5) { system("cls"); printf(" **** MENU **** \n"); printf("\n"); printf(" 1 --> FAZ VAZIA\n"); printf(" 2 --> INSERIR\n"); printf(" 3 --> REMOVER\n"); printf(" 4 --> IMPRIMIR\n"); printf(" 5 --> SAIR\n"); printf("\n\n Aguardando opcao...\n"); printf(" "); scanf("%d",&op); switch(op) { case 1: FazVazia(&lista); break; case 2: printf(" Digite o elemento que deseja inserir:\n"); scanf("%d", &E); printf(" Digite a posicao que deseja inserir:\n"); scanf("%d", &pos); inserir(&lista,pos,E); break; case 3: printf(" Digite a posicao que deseja remover:\n"); scanf("%d", &pos); remover(&lista,pos); break; case 4: imprimir(&lista); break; case 5: { return 0; } default: { system("cls"); printf(" Opcao invalida!\n\n\n"); break; } } } system("pause"); return 0; }
Compartilhar