Lista Encadeada Dev++

290 palavras 2 páginas
//lista encadeada
//Operaçoes com Lista encadeada
#include
#include
#include

// lista encadeada de forma estática (pouco usado); struct elemento{ int valor; elemento *proximo, *anterior;
};
void criar(elemento *e,int valor){ e->valor=valor; e->proximo=NULL; e->anterior=NULL;
}
void girarDireita(elemento *e,int vezes){ elemento *nav = e; for(int i=0;i < vezes;i++){ if(nav->valor==-1)nav=nav->proximo;//ignora cabeca printf("%d -> ",nav->valor); nav=nav->proximo; }
}
void girarEsquerda(elemento *e,int vezes){ elemento *nav = e; for(int i=0;i < vezes;i++){ if(nav->valor==-1)nav=nav->anterior;//ignora cabeca printf("%d -> ",nav->valor); nav=nav->anterior; }
}
void inserir(elemento *lista){//(recebe valor qualquer) elemento *novo = new elemento; criar(novo,0); printf("digite o valor do novo elemento: "); scanf("%d",&novo->valor); //encontrar o lugar de inserir o novo elemento *nav= lista; while(nav->proximo!=NULL){ nav=nav->proximo; } nav->proximo = novo; novo->anterior = nav; novo->proximo=lista;//fazendo a cercularidade lista->anterior=novo;
//excluindo qualquer elemento void excluir(elemento *lista,int valor){ elemento *nav= lista->proximo; while(nav!=NULL && nav->valor!=valor){ nav=nav->proximo; } if(nav!=NULL){ if(nav->proximo!=NULL){//no meio nav->anterior->proximo=nav->proximo; nav->proximo->anterior=nav->anterior; delete nav; } } else{ printf("\n%d nao existe na lista...",valor); } } int main(void){ int opcao=0; elemento lista1; criar(&lista1,-1); while(opcao!=6){ printf("\nescolha uma opcao: \n" "1 - inserir\n" "2 - Exluir elemento\n" "3 - Girar para direita\n" "4 - Girar para esquerda\n" "6 - sair\n\n");

Relacionados

  • Sistemas operacionais
    1274 palavras | 6 páginas
  • inicio
    1619 palavras | 7 páginas
  • SISTEMAS DE ARQUIVOS
    3785 palavras | 16 páginas
  • Sistemas de Arquivos
    1840 palavras | 8 páginas
  • Sistema de arquivos
    3452 palavras | 14 páginas
  • Organização de arquivos
    6161 palavras | 25 páginas
  • Estrutura de dados - edwar saliba júnior
    898 palavras | 4 páginas
  • Engenharia
    2437 palavras | 10 páginas
  • Produção textual interdisciplinar
    8609 palavras | 35 páginas
  • SisOper 06 Gerencia Arquivos
    16548 palavras | 67 páginas