DarkLord22 Δημοσ. 20 Ιανουαρίου 2009 Δημοσ. 20 Ιανουαρίου 2009 Γεια!! εχω ενα προβλημα δεν μπορω να καταλαβω της λιστες στις δομες δεδομενων... καποιος να βοηθησει? το προβλημα μου ειναι οτι δεν ξερω πως συντασω στη c μια λιστα.. ευχαριστω!! για ολη την βοηθεια! sorry για τα λαθη!
GrandGamer Δημοσ. 20 Ιανουαρίου 2009 Δημοσ. 20 Ιανουαρίου 2009 Η Λίστα είναι ένας δυναμικός τρόπος να κρατάς δεδομένα. Χρειάζεσαι μία δομή δεδομένων η οποία να μπορεί να δει τον "εαυτό" της, δηλαδή έναν pointer μέσα στη δομή που βλέπει σε θέση μνήμης της ίδιας της δομής. Αυτό το κάνεις γιατί αυτή η δομή είναι ένας κόμβος της λίστας σου. Ουσιαστικά τώρα το μόνο που χρειάζεται είναι να δημιουργείς κόμβους και να τους συνδέεις με αυτόν τον pointer, τον ένα μετά τον άλλο, και έτσι θα έχεις μία λίστα.
flo1 Δημοσ. 20 Ιανουαρίου 2009 Δημοσ. 20 Ιανουαρίου 2009 ΔΙαβασε αυτα http://www.dmst.aueb.gr/dds/c2/list/indexw.htm Μπορεις να ψαξεις στο google και αλλα..
DarkLord22 Δημοσ. 20 Ιανουαρίου 2009 Μέλος Δημοσ. 20 Ιανουαρίου 2009 typedef struct SimpleNode{ int value; SimpleNode *next; }SimpleNode; typedef struct SimpleList{ SimpleNode *head; }SimpleList; typedef struct Stack{ SimpleList L; }Stack; int insertAtHead(SimpleList *L,int x){ SimpleNode *newnode; newnode=(SimpleNode *) malloc (sizeof(SimpleNode)); if (newnode == NULL){ printf("Wrong"); return 0; } else{ newnode->value=x; newnode->next=L->head; L->head=newnode; return 1; } } int deleteFromHead(SimpleList *L,int *x){ SimpleNode *cur; if ( L->head == NULL){ //printf("Wrong!"); return 0; } else { cur=L->head; L->head=L->head->next; *x=cur->value; free(cur); return 1; } } int pop(Stack *S,int x){ int res; res=deleteFromHead(&(S->L),&x); if ( res == 0 ){printf("Was not successful(UnderFlow)"); return 0; } else { printf("Was successful"); return 1; } } int push(Stack *S,int x){ int res; res=insertAtHead(&(S->L),x); if (res == 0){printf("Was not successful(OverFlow)"); return 0; } else { printf("Was successful"); return 1; } } void display(SimpleList L){ int printer=0; SimpleNode *cur; cur = L.head; while ( cur != NULL) { printer = cur->value; printf("%d ", printer); cur=cur->next; } } πχ εδω δεν ξερω τη ειναι τα -> -----Προστέθηκε 20/1/2009 στις 12 : 33 : 18----- typedef struct SimpleNode{ int value; SimpleNode *next; }SimpleNode; typedef struct SimpleList{ SimpleNode *head; }SimpleList; typedef struct Stack{ SimpleList L; }Stack; και αυτα εδω με μπερδευουν το typedef struct ειναι παντα ιδιο η το αλλαζουμε? -----Προστέθηκε 20/1/2009 στις 12 : 34 : 42----- thx παιδεια τωρα τα διαβαζω!! -----Προστέθηκε 20/1/2009 στις 12 : 37 : 18----- typedef struct SimpleNode{ int value; SimpleNode *next; SimpleNode *next; δηλαδη ειναι ο pointer? και τη ειναι τα βελακια ? δεν βρισκω πουθενα κατι εχουν σχεση με τους pointers αν θυμαμε καλα...
GrandGamer Δημοσ. 20 Ιανουαρίου 2009 Δημοσ. 20 Ιανουαρίου 2009 Δεν ξέρω τι είναι τα struct SimpleList και Stack και ούτε σου χρειάζονται.
DarkLord22 Δημοσ. 20 Ιανουαρίου 2009 Μέλος Δημοσ. 20 Ιανουαρίου 2009 νομιζω οτι ετσι θετουμε τις στηλες..με την struct...
GrandGamer Δημοσ. 20 Ιανουαρίου 2009 Δημοσ. 20 Ιανουαρίου 2009 Όχι δεν δηλώνουμε έτσι στήλες, βασικά δεν υπάρχουν στήλες. Όσον αφορά τους pointer άμα δεν ξέρεις τι είναι τότε έχεις πρόβλημα. Οι pointer είναι δείκτες που δείχνουν σε μία συγκεκριμένη θέση μνήμης. Τα -> σημαίνουν σε μία συγκεκριμένη θέση της θέσης που βλέπει ο pointer πχ head->next σημαίνει στην μεταβλητή next της θέσης που δείχνει εκείνη τη στιγμή ο head.
DarkLord22 Δημοσ. 20 Ιανουαρίου 2009 Μέλος Δημοσ. 20 Ιανουαρίου 2009 ξερω τη ειναι οι pointers απλως καναμε ενα μαθημα με τις λιστες και δεν εχω σημειωσεις οποτε προσπαθω να καταλαβω απο το βιβλιο και απο τις ασκησεις καπια πραγματα και στο βιβλιο δεν τα λεει ολα.. και ο καθηγητης μας ειχε κανει τα struct kai προσπαθω να τα συνδιασω ολα εχω καταλαβει πως δουλευουν απλως δυσκολευομαι να τα γραψω δεν ξερω πως να φτιαξω μια λιστα σε κωδικα ξερω οτι θες pointers που να δειχνουν τιν επομενη θεση κτλ...απλως ο καθηγητης θα θελει να τα κανουμε με struct κτλ... -----Προστέθηκε 20/1/2009 στις 01 : 36 : 58----- thx παντως καταλαβα τα βελακια -----Προστέθηκε 20/1/2009 στις 02 : 09 : 15----- ΤΟ ΚΑΤΑΛΑΒΑ ΕΥΧΑΡΙΣΤΩ!!!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.