Lista ze strukturami.
Ostatnio zmodyfikowano 2014-12-16 16:13
Nedvid Temat założony przez niniejszego użytkownika |
Lista ze strukturami. » 2014-12-15 20:33:46 Muszę napisać program który będzie wczytywał z wejścia ciąg znaków, a następnie zapisywał je do listy jednokierunkowej, która będzie składała się z elementów wprowadzonych oraz ich powtórzeń w ciągu znaków. Np. dla wejścia: Aabbbccd12223 Lista powinna wyglądać tak: A/1, a/1, b/3, c/2, d/1, 1/1, 2/3, 3/1 Mam na to pomysł gorzej z wykonaniem, a mianowicie, chciałem zaimplementować listę ze strukturami która zawiera wprowadzony znak (char), oraz liczbę jej powtórzeń n(int). Z implementacją listy sobie poradziłem, jednak trzeba ją zmodyfikować bo póki co można do niej dodawać tylko liczby. Jak się za to zabrać ? :) struct element { int x; }; struct lista { struct element data; struct lista * next; }; struct lista * dodaj_lista( struct lista * first, struct element data ) { struct lista * wsk; wsk =( struct lista * ) malloc( sizeof( struct lista ) ); wsk->data = data; wsk->next = first; return wsk; } void wyswietl_liste( struct lista * first ) { cout << "\nLista: \n"; while( first != NULL ) { cout << first->data.x << "\t"; first = first->next; } cout << "\n"; } struct lista * usun_wszystko( struct lista * first ) { struct lista * wsk; while( first != NULL ) { wsk = first->next; free( first ); first = wsk; } return first; }
|
|
Monika90 |
» 2014-12-15 21:34:01 Jeżeli nie wiesz jak dokonać takiej modyfikacji, to znaczy, że to nie Ty pisałeś ten kod. |
|
Nedvid Temat założony przez niniejszego użytkownika |
» 2014-12-15 21:58:47 Bardzo pomocny post, dzięki!! |
|
darko202 |
» 2014-12-16 11:50:48 aby zmienić strukturę danych przechowujących przez listę musisz przebudować strukturę element np. dwie liczby i string czyli co tam będziesz chciał. struct element { int x; int y; String s; }; void wyswietl_liste( struct lista * first ) { ... cout << first->data.x << "\t"; cout << first->data.y << "\t"; cout << first->data.s << "\t"; ... }
|
|
Nedvid Temat założony przez niniejszego użytkownika |
» 2014-12-16 16:13:30 Muszę jeszcze tylko zmodyfikować strukturę dodawania elementu aby dodawała elementy bez powtórzeń. Chciałem to zrobić w ten sposób aby zanim doda się element, program sprawdził czy element już nie znajduję się w liście, wymyśliłem coś takiego ale nie działa :/ struct lista * dodaj_lista( struct lista * first, struct element data ) { struct lista * temp; temp = first; while( first != NULL ) { first = first->next; if( temp->data.x == first->data.x ) return 0; } struct lista * wsk; wsk =( struct lista * ) malloc( sizeof( struct lista ) ); wsk->data = data; wsk->next = first; return wsk; }
|
|
« 1 » |