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

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


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;

}

 

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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