Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Perl Προγραμματισμός

Πώς να αφαιρέσει Αντίγραφα Από Array Perl

Perl και πολλές άλλες γλώσσες προγραμματισμού χρησιμοποιούν συστοιχίες να αποθηκεύσετε μια λίστα των στοιχείων . Ωστόσο , Perl υποστηρίζει επίσης μια ειδική δομή δεδομένων που ονομάζεται hash . Μια hash Perl συνδέει μια συγκεκριμένη τιμή με ένα κλειδί . Ένα παράδειγμα είναι η hash { Ιαν = > 31 , Apr = > 30 } , στην οποία ένας μήνας είναι ένα κλειδί και ένα αριθμό ημερών είναι μια τιμή . Μια hash Perl καθιστά δυνατή την ανάπτυξη έναν απλό αλγόριθμο για να αφαιρέσετε τα διπλότυπα από έναν πίνακα. Η αντίστοιχη υπορουτίνα έχει λιγότερο από δέκα εντολές σε Perl . Οδηγίες
Δημιουργία Υπορουτίνα " Remove_duplicates ? " " . Καταχωρήσεις " ένα αλγόριθμο
Η 1

Αποκτήστε τα δεδομένα πίνακα και να κηρύξει ένα hash Μια άλλη σειρά που ονομάζεται " new_array " θα περιέχουν μη διπλές στοιχεία . Βήματα 1-5 απεικονίζονται με τον κώδικα Perl που παρέχονται στο τμήμα 2 , Βήμα 3 . 2

Ανάθεση όλων των στοιχείων της κεραίας καθώς τα κλειδιά κατακερματισμού και να εκχωρήσετε τιμές κατακερματισμού ίσος με 1 για όλα τα πλήκτρα.

Η 3

Loop μέσα από όλα τα στοιχεία του πίνακα και ελέγξτε την τιμή κατακερματισμού που συνδέεται με αυτό το στοιχείο .
Η 4

Εάν η τιμή κατακερματισμού είναι 1 ( βλ. βήμα 3 ), τότε η στοιχείο είναι πρωτότυπο ή όχι αναπαραχθεί και πρέπει να προστεθούν στο " new_array . " Στο ίδιο χρονικό διάστημα το στοιχείο αυτό σημειώνεται ? . , Δηλαδή τις αλλαγές αξία κατακερματισμού 0
5

Εάν η τιμή κατακερματισμού είναι 0 , τότε το στοιχείο αυτό έχει ήδη συναντήσει ? . Δηλαδή είναι διπλοί και υπερπήδηση

Η Παραδείγματος και Perl Πρόγραμμα
Η 6

Κατάργηση διπλότυπων από τον πίνακα με στοιχεία ( 1 2 6 7 2 9 1 2 6 ) .
Η 7

Εκτύπωση αρχικής και τελικής συστοιχίες ( χωρίς διπλότυπα )
8

Τμήμα # 1 # Υπορουτίνα αρχίζει

υπο remove_duplicates { μου ( $ array , $ new_array ) = @ _ ? Βήμα # 1 . Διαβάστε αρχικές καταχωρίσεις arraymy % = ( ) ? # Βήμα 1 . Δηλώστε το hash

foreach ( @ $ array) { αν υπάρχει δίπλα $ $ καταχωρήσεις { _ } ? $ $ Καταχωρήσεις { _ } = 1 ? # Βήμα 2 }

foreach ( @ $ array ) { # Στάδιο 3 . Βρόχο μέσω όλων των array elementsif ( καταχωρήσεις $ { $ _ } ) { # Βήμα 5 . Το στοιχείο παραλείπεται Εάν η τιμή κατακερματισμού είναι 0.push @ $ new_array , $ _ ? # Βήμα 4 . Προσθέστε ένα στοιχείο στη νέα σειρά μόνο αν η τιμή κατακερματισμού είναι 1 $ καταχωρήσεις { $ _ } = 0 ? # Βήμα 4 . Το στοιχείο έχει επισημανθεί , δηλαδή να αλλάξετε την τιμή κατακερματισμού για 0 . }

} }

# Υπορουτίνα Κυκλική

# Τμήμα 2my $ array = [ qw ( 1 2 6 7 2 9 1 2 6 ) ] ? # Βήμα 1 : ένα παράδειγμα arraymy $ new_array = [ ] ? # remove_duplicates ( $ array , $ new_array ) ? print " @ $ array \\ n" ? # Βήμα 2 . Εκτύπωση αρχικής arrayprint " @ $ new_array \\ n" ? # Εκτύπωση τελική arrayexit ?
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα