50 likes | 129 Views
Roberto Ferrari Mauricio Falvo. Estrutura de Dados Unidade 9 Simulação do exercício 9.2 CASO 01b. Elemento X pesquisado é retirado do fim da lista de elementos. O procedimento FIND é chamado pelo procedimento Remove. P. L. Achou_e_Removeu. A. B. C. D. Ant.
E N D
Roberto Ferrari Mauricio Falvo Estrutura de DadosUnidade 9Simulação do exercício 9.2CASO 01b
Elemento X pesquisado é retirado do fim da lista de elementos. O procedimento FIND é chamado pelo procedimento Remove P L Achou_e_Removeu A B C D Ant. Ex. 9.2 Busca e Remoção em uma Lista Encadeada Ordenada – CASO 01b. ► ► ► ► ► ► ► ► ► ► Remove(parâmetro por referência L do tipo Lista, parâmetro X do tipo Elemento, parâmetro por referência Achou_e_Removeu? tipo Boolean ) Variável temporária P e Anterior tipo Lista // Tipo Lista = NodePtr ou ainda ponteiro para nó // Passo 1: Executa o Passo 1 do Algoritmo 9.2 Find ( X, L, P, Anterior, Achou_e_Removeu) // Passo 2: Se Achou_e_Removeu Então Se Anterior = Null Então L = Next( L ) // Caso 2 ou 2´ Senão Next( Anterior) = Next( P ) //Caso 1 ou 1´ Freenode( P ) // Casos 3 e 4: X não está na lista. Achou_e_Removeu retornará Falso, e a operação acaba. Fim X D
// Passo 1 – Execução do FIND Find( X tipo elemento; L tipo Lista; parâmetro por referência P, Anterior tipo Lista; parâmetro por referência Achou_e_Removeu tipo boolean ) P = L ; Anterior = Null Enquanto (P diferente-de Null) E (Info( P ) < X) Faça Anterior = P P = Next( P ) Se (P diferente-de Null) E (Info( P ) = X) Então Achou_e_Removeu = Verdadeiro Senão Achou_e_Removeu = Falso Fim P L Achou_e_Removeu A B C D Ant. Ex. 9.2 Busca e Remoção em uma Lista Encadeada Ordenada – CASO 01b. Elemento X pesquisado é retirado do fim da lista de elementos. ► ► ► ► ► ► ► ► ► ► X D Verdadeiro
Elemento X pesquisado e retirado do fim da lista de elementos. P Achou_e_Removeu A B D C Ant. Ex. 9.2 Busca e Remoção em uma Lista Encadeada Ordenada – CASO 01b. ► ► ► ► ► ► ► ► ► ► Remove(parâmetro por referência L do tipo Lista, parâmetro X do tipo Elemento, parâmetro por referência Achou_e_Removeu? tipo Boolean ) Variável temporária P e Anterior tipo Lista // Tipo Lista = NodePtr ou ainda ponteiro para nó // Passo 1: Executa o Passo 1 do Algoritmo 9.2 Find ( X, L, P, Anterior, Achou_e_Removeu) // Passo 2: Se Achou_e_Removeu Então Se Anterior = Null Então L = Next( L ) // Caso 2 ou 2´ Senão Next( Anterior) = Next( P ) //Caso 1 ou 1´ Freenode( P ) // Casos 3 e 4: X não está na lista. Achou_e_Removeu retornará Falso, e a operação acaba. Fim L X D Verdadeiro