Programação  
 
Conhecimento computador >> Programação >> Programação em Java >> 
Como mesclar duas listas ordenadas ADT
Um Tipo de Dados Resumo lista (ADT) , ou lista ligada como é mais comumente chamado, é uma das estruturas de dados fundamentais em ciência da computação e uma das primeiras alternativas para a matriz simples aprendida por um estudante de ciência da computação . Embora sacrifica a capacidade de mover-se para o meio da lista sem ter de procurar na lista em primeiro lugar, a lista ADT torna tão fácil de expandir e encolher os dados armazenados . Este código é implementado em Java , já embutido Linked estrutura de dados Lista de Java nos permite ir diretamente ao ponto, mas a mesma lógica poderia ser implementada com a modificação mínima em qualquer outra linguagem C -like. Instruções
1

Crie suas duas listas ligadas e inicializar -los com alguns dados classificados , colando o seguinte em um arquivo Java :

LinkedList lista1 = new LinkedList ( );

LinkedList list2 = new LinkedList ();

for (int x = 0; x < 100; x + +) você tem duas listas ligadas cheios de números aleatórios que foram ordenados
2

Criar nova lista Linked para manter a lista mesclada colando o seguinte : .

LinkedList fundiu = new LinkedList ();
3

Configurar um simples loop while . Este ciclo vai continuar enquanto ambas as listas têm pelo menos um elemento em si, e vai passar a menor dos principais elementos para a lista mesclada : .

//Enquanto ambas as listas não estão vazios

while ( list1.isEmpty ! ( ) && ! list2.isEmpty ()) {

if ( list1.peek () < = list2.peek ()) {

fundiu . adicionar ( list1.pop ()); }

else {

merged.add ( list2.pop ()); }


}

o comando " Peek " olha para o elemento na frente da lista , enquanto o " Pop ", tanto olha para o elemento e remove-lo. Quando a comparação é feita, você só quiser espreitar o topo da lista para ver qual é menor. Quando chega a hora de mesclar as listas , você quer tirar o valor superior e colocá-lo sobre as novas listas.
4

terminar o trabalho. Assim que uma ou outra lista está vazia , não há necessidade de continuar a fazer comparações. Portanto , o laço velho termina, e outro loop é criado para preencher o resto da lista mesclada com os dados restantes da última lista :

//Enquanto a primeira lista não é
vazio

while ( list1.isEmpty ( !)) {

merged.add ( list1.pop ()); }


//enquanto a segunda lista não está vazia.

enquanto {

merged.add ( list2.pop ()); }

( list2.isEmpty () !)
5

Imprima os resultados para que você possa inspecionar a lista mesclada e garantir que ele funcionou corretamente :

int x = 1;

for ( y Duplo : fundiu ) {

sistema. out.println (x + "" + y);

x + +; }



Anterior :

Próximo : No
  Os artigos relacionados
·Como fazer um programa no NetBeans 
·Contagem regressiva Tutorial em Java 
·Os benefícios da CMP sobre BMP 
·Java e aleatórias Funções 
·Como adicionar um painel ao JFrame 
·PHP vs. Escalabilidade Java 
·Uma boa maneira de organizar classes com Java 
·Como criar um emulador Android 
·Java Teoria & Prática : Coleta de Lixo na JVM 1.4.1 
·Como fazer uma JTable no NetBeans 
  Artigos em destaque
·Como instalar OpenCms 
·Como compilar usando Dev C + + 
·Como executar o código Java em uma máquina virtual 
·Como remover pontos de uma matriz em Java 
·Como configurar o IIS 6 
·Como adicionar mapas para Quake 3 
·Como fazer fitas em CSS3 
·Como fazer uma cadeia de caracteres Minúscula 
·Como Mina de Dados 
·Como usar um Date Picker básico Com GridView 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados