Προς το περιεχόμενο

Συνδεδεμένη λίστα - Απορία !


AfterForever

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα.

Έχω μια εργασία με συνδεδεμένες λίστες και το ερώτημά μου είναι το εξής.

Όταν προσπελαύνω μια λίστα (list=list->next) και μετά θέλω να πάω πάλι στην αρχή της ή τέλοσπάντων κάπου ενδιάμεσα, πως γίνεται αυτό;

struct listnode {

float sind;

unsigned int ekth;

Listptr next;

};

 

Αυτή είναι η λίστα μου.

Το πρόβλημα πως προέκυψε;

Θέλω να προσπελάσω 2 λίστες κατ' αυτόν τον τρόπο.

while(list1!=NULL){

while(list2!=NULL){

.......;

list2=list2->next;

}

list1=list1->next;

}

 

Το θέμα είναι ότι αν οι λίστες έχουν πχ 2 στοιχεία η κάθε μία, τότε μετά τις 2 πρώτες επαναλήψεις το list2 θα δείχνει NULL. Οπότε θα πρέπει να βάλω μια εντολή κάτω από το list1=list1->next που να κάνει το list2 να δείχνει στο πρώτο στοιχείο.

 

Υπάρχει τέτοια δυνατότητα;

Ευχαριστώ

Δημοσ.

Μπορεις να εχεις ενα pointer start2 που να δειχνει στην αρχη της λιστας 2, οποτε σε καθε επαναληψη μπορεις να επανερχεσαι.

 

 

start2 = list2;

 

while(list1!=NULL){

list2 = start2;

while(list2!=NULL){

.......;

list2=list2->next;

}

list1=list1->next;

}

 

 

Φυσικα και ειναι επιτρεπτο κατι τετοιο, εκτος αν για διαφορους λογους η ασκηση δεν στο επιτρεπει. Ελπιζω να απαντησα στο προβλημα σου.

Αρχειοθετημένο

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

  • Δημιουργία νέου...