Peter_m Temat założony przez niniejszego użytkownika |
» 2018-04-28 18:59:47 Kurde, przyjacielu weź mi to napisz w kodzie przykładowym, nie chcę spamować, czy iść na łatwiznę. Tobie chodzi o Napisanie dodatkowej funkcji typu void, czy w ciele funkcji dodaj koniec(), mam dopisać wskaźnik znajdujący się w dodatkowej strukturze o nazwie Wezel. Proszę pomóż mi to zrozumieć cholerstwo :( |
|
pekfos |
» 2018-04-28 19:29:05 struct Lista { Wezel * poczatek; Wezel * koniec; };
struct Wezel { Wezel * ogon; int liczba; };
void dodajKoniec( Lista & lista, int liczba ); |
|
Peter_m Temat założony przez niniejszego użytkownika |
» 2018-04-28 20:00:51 Ok, to mam struct Lista { Lista * ogon; int liczba; }; struct Wezel { Wezel * poczatek; Wezel * koniec; };
I muszę teraz zmodyfikować voida dodaj koniec? Dopisać wskaźnik dla struktury Wezel? Proszę o wybaczenie, za tak laickie pytania ale chcę być pewny czy dobrze myślę. |
|
pekfos |
» 2018-04-28 20:26:12 Jak na razie kodu nie masz dobrego. |
|
Peter_m Temat założony przez niniejszego użytkownika |
» 2018-04-28 21:12:43 Chyba zadziałało mi, a przynajmniej mam takie wrażenie. o to cały kod aplikacji wraz z rozwiązaniem zadania 1 także jest rozwiązanie z zadania 2. jeśli mógłbyś przeanalizować kod będę wdzięczny ewentualnie znowu wytkać błąd. Serdecznie dziękuję nad cierpliwość nade mną ale naprawdę pierwszy raz proszę o wskazówkę. Jeszcze raz dziękuję. struct Lista { Lista * ogon; int liczba; }; struct Wezel { Lista * lista; Wezel * Lista; };
void wypisz( Lista * lista ) { if( lista ) { cout << lista->liczba << ", "; wypisz( lista->ogon ); } }
Lista * ostatni( Lista * lista ) { if( lista ) while( lista->ogon ) lista = lista->ogon; return lista; }
void dodajPoczatek( Lista *& lista, int liczba ) { Lista * NewTab = new Lista; NewTab->liczba = liczba; NewTab->ogon = lista; if( NewTab == NULL ) ostatni( lista )->ogon = NewTab; else lista = NewTab; }
void dodajKoniec( Lista *& lista, int liczba ) { Lista * nowy = new Lista; nowy->liczba = liczba; nowy->ogon = NULL; if( lista ) ostatni( lista )->ogon = nowy; else lista = nowy; }
void zniszcz( Lista *& lista ) { while( lista ) { Lista * tmp = lista; lista = lista->ogon; delete tmp; } lista = NULL; } int main() { int liczba; Lista * lista = NULL; cout << "Podaj liczby, o lub blad konczy: \n"; while( cin >> liczba && liczba ) dodajKoniec( lista, liczba ); while( cin >> liczba && liczba ) dodajPoczatek( lista, liczba ); cout << "Koniec, o to liczby: \n" << endl; wypisz( lista ); zniszcz( lista ); } |
|
pekfos |
» 2018-04-28 21:42:05 Nie ma tym kodzie nic, co można by nazwać rozwiązaniem drugiego zadania. Problem z polecenia do zadania nie został rozwiązany. |
|
Peter_m Temat założony przez niniejszego użytkownika |
» 2018-04-28 21:47:45 Na chwilę obecną się poddaje :( cały dzień przesiedziałem nad tym i nic :(, a nie chcę też tracić waszego cennego czasu. |
|
pekfos |
» 2018-04-29 00:58:45 Jak na razie nie zastosowałeś się do żadnej wskazówki, zwłaszcza do tych do których był nawet podany kod. void dodajPoczatek( Lista *& lista, int liczba ) { Lista * NewTab = new Lista; NewTab->liczba = liczba; NewTab->ogon = lista; lista = NewTab; } Wykomentowane linie nie mają żadnego sensu. Rozwiązanie działa tylko dlatego, że ten kod akurat nigdy nie jest wykonywany i te 3 linie nie wpływają na działanie programu. Nie byłoby ich, gdybyś zaczął od zrozumienia co masz zrobić, a nie od skopiowania kodu z funkcji, która robi zupełnie co innego. |
|
1 « 2 » 3 |