Program Teste_das_Rotinas_de_Lista_Duplamente_Encadeada; {$I lde.pas} Var Lista,Laux: Ptr_ListaDE_Nodo; Dado:TlistaDE_Dado; Begin writeln('>>> Teste das rotinas LDE <<<'); writeln; writeln('# Insere no inicio: 10, 20, 30'); ListaDE_inicializa (Lista); ListaDE_Insere_Antes (Lista,10); ListaDE_Insere_Antes (Lista,20); ListaDE_Insere_Antes (Lista,30); writeln('# Lista Duplamente Encadeada com insercao no inicio:'); ListaDE_Exibe(Lista); writeln('# Adiciona no final: 40, 50, 60'); ListaDE_Posiciona_Final(Lista); ListaDE_Insere_Depois (Lista,40); ListaDE_Insere_Depois (Lista,50); ListaDE_Insere_Depois (Lista,60); writeln('# Lista Duplamente Encadeada com insercao inicio e no final:'); ListaDE_Exibe(Lista); writeln; writeln('Procurando dados...'); write('Procura o dado com valor 40... '); if ListaDE_Pesquisa_Dado (Lista,40) then writeln('Achou') else writeln('Nao achou'); write('Procura o dado com valor 100... '); if ListaDE_Pesquisa_Dado (Lista,100) then writeln('Achou') else writeln('Nao achou'); write('Procura o dado com valor 20... '); if ListaDE_Pesquisa_Dado (Lista,20) then writeln('Achou') else writeln('Nao achou'); write('Procura novamente o dado com valor 20... '); Laux:=Lista^.prox; if ListaDE_Pesquisa_Prox (Laux,20) then writeln('Achou') else writeln('Nao achou'); writeln; writeln('Removendo nodos: um de cada extremidade...'); ListaDE_Posiciona_Inicio(Lista); if ListaDE_Remove_Nodo(Lista,Dado) then writeln('Dado removido: ',Dado) else writeln('Nao foi possivel remover!'); ListaDE_Posiciona_Final(Lista); if ListaDE_Remove_Nodo(Lista,Dado) then writeln('Dado removido: ',Dado) else writeln('Nao foi possivel remover!'); ListaDE_Posiciona_Inicio(Lista); if ListaDE_Remove_Nodo(Lista,Dado) then writeln('Dado removido: ',Dado) else writeln('Nao foi possivel remover!'); ListaDE_Posiciona_Final(Lista); if ListaDE_Remove_Nodo(Lista,Dado) then writeln('Dado removido: ',Dado) else writeln('Nao foi possivel remover!'); ListaDE_Posiciona_Inicio(Lista); if ListaDE_Remove_Nodo(Lista,Dado) then writeln('Dado removido: ',Dado) else writeln('Nao foi possivel remover!'); ListaDE_Posiciona_Final(Lista); if ListaDE_Remove_Nodo(Lista,Dado) then writeln('Dado removido: ',Dado) else writeln('Nao foi possivel remover!'); writeln; if Lista = NIL then writeln('Lista Vazia!'); writeln; if ListaDE_Remove_Nodo(Lista,Dado) then writeln('Dado removido: ',Dado) else writeln('Nao foi possivel remover!'); writeln; writeln('>>> FIM <<<'); End.