| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Programmation Java >> Content
    Comment fusionner deux listes d'ADT Ordre
    Un type abstrait de données ( ADT) de la liste, ou liste chaînée comme il est plus communément appelé, est l'une des structures de données fondamentales en informatique et l'une des premières solutions de rechange à la simple tableau appris par un étudiant en informatique . Bien qu'il sacrifie la capacité de se déplacer au milieu de la liste , sans chercher à travers la première liste , la liste ADT rend trivialement facile à agrandir et réduire les données stockées. Ce code est implémenté en Java , depuis intégré dans Lié la structure de données de liste de Java nous permet d'obtenir directement au point , mais la même logique pourrait être appliquée avec un minimum de modifications dans une autre langue C -like. Instructions
    1

    Créez vos deux listes chaînées et les initialiser avec des données triées en collant le texte suivant dans un fichier Java:

    LinkedList list1 = new LinkedList ( ) ;

    LinkedList list2 = new LinkedList ();

    for (int x = 0; x < 100; x + +) vous avez deux listes chaînées remplis de nombres aléatoires qui ont été triés
    2

    créer une nouvelle liste Lié à tenir la liste fusionnée en collant ce qui suit: .

    LinkedList fusionné = new LinkedList ();
    3

    Mettre en place d'une simple boucle while . Cette boucle se poursuivra tant que les deux listes ont au moins un élément en eux, et il se déplace le plus petit des premiers éléments de la liste fusionnée : .

    //Si les deux listes ne sont pas vides

    tout ( ! list1.isEmpty () && ! ​​list2.isEmpty ()) {

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

    fusionné . add ( list1.pop ());

    } else {

    merged.add ( list2.pop ());

    }

    }

    la commande " Peek "
    regarde l'élément au début de la liste , alors que " Pop " à la fois se penche sur l'élément et le supprime . Lorsque la comparaison est faite, vous ne voulez coup d'oeil au sommet de la liste pour voir qui est plus petit . Quand vient le temps de fusionner les listes , vous voulez emporter la valeur supérieure et le mettre sur les nouvelles listes .
    4

    finir le travail. Dès que soit la liste est vide, il n'est pas nécessaire de continuer à faire des comparaisons . Par conséquent , les anciennes extrémités de la boucle , et une autre boucle est créé pour combler le reste de la liste fusionnée avec le reste des données de la dernière liste :

    //Alors que la première liste n'est pas vide

    tandis que {

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

    } ( list1.isEmpty () !)

    //alors que la deuxième liste n'est pas vide . Photos

    tout {

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

    } ( list2.isEmpty () !)
    5

    Imprimez les résultats de sorte que vous pouvez consulter la liste fusionnée et s'assurer qu'elle a bien fonctionné :

    int x = 1;

    pour ( Double Y : fusionné ) { System


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

    x + +;

    }

    Previous :

    next :
      articles connexes
    ·Comment ajouter une bibliothèque à NetBeans 
    ·Comment faire une interface graphique en Java 
    ·Comment Java supporte des logiciels réutilisabilité 
    ·Comment vérifier si une chaîne contient que des lettr…
    ·Affichage de fonction en Java 
    ·Comment configurer la pile Java 
    ·Comment parcourir un vecteur dans Java 
    ·Qu'est-ce qu'une source d'événements en Java 
    ·Provoquer des exceptions Java 
    ·Comment supprimer JPA dans Java 
      articles en vedette
    ·Comment faire vos propres signes en Java 
    ·Comment créer des scripts PHP pour des applications 
    ·Comment lier des données à une zone de texte en VB 
    ·Comment créer un site web d'abonnement avec Dreamweave…
    ·Comment convertir les valeurs de registre binaire à co…
    ·Comment utiliser des tableaux pour réaliser des matric…
    ·Comment tracer Grandes Lignes dans MATLAB 
    ·Comment faire pour intégrer MySQL dans Visual C 
    ·Comment faire pour vérifier la disponibilité de l'imp…
    ·Qu'est-ce que microdonnées HTML5 
    Copyright © Connaissances Informatiques http://fr.wingwit.com