Wyglada na to, że nie myślisz na poziomie informatyka, a na poziomie kodera. Moim zdaniem rozwiązaniem takiego zadania jest doklejenie jednaj listy za drugą i posortowani listy wynikowej. Tylko jakieś wyjątkowe powody mogłyby mnie zmusić do budowania nowej metody sortowania z użyciem trzech list. ----- Sorry, trochę się rozpędziłem... No chyba że chodzi...
Może spróbuj zamienić show z write miejscami ;-)
Heh, trudno tak przez neta tłumaczyć coś, co się normalnie tłumaczy rysująn na kartce :( Choć była tu kiedyś taka gimnazjalistka, co świetnie potrafiła algorytmy rozrysowywać, to by pewnie umiała wytłumaczyć Ci, na czym polegają listy... Generalnie jest to zbiór obiektów połączonych w łańcuszek - każdy wskazuje na następny (ale tylko w jedną stronę)....
w objekcie masz tylko wskaźnik do następnego objektu a więc musisz wszystko zwalniać pokolejii.. jeśli zniszczysz (delete) tylko 'wskażnik_na_węzeł_listy' to wskaźnik na kolejną instancje tej klasy zostanie stracony (wyciek pamięci), a obszar wskazywany niezostanie zwolniony... musisz usuwać wszystko pokolejii.. ew można całość dać do pętli while......
Witam! Mnie się wydaje, że chodzi o to: Dane w liście występują w następującej kolejności: 2.0, 6.0, 3.0, 5.0 4.0, 7.0, 6.5, 5.0 Średnia wynosi: 4.8125 czyli, po rozbiciu na te "podlisty" powinno być tak: 1 - mniejsze od 4.8125: 2.0, 3.0. 4.0 - na początku listy 2 - większe niż 4.8125: 6.0, 5.0, 7.0, 6.5, 5.0 - na końcu listy Zwróć uwagę na kolejność...
- Zapomnij o tych while, for zawsze krótszy. - Nie rób nadmiarowych ruchów. - Przywiduj wszystkie sytuacje. [syntax=cpp]#include <iostream> using namespace std; struct node { string name,surname; node *next; }; node *nazwa_funkcji(node *head,const string &name) { node *last=NULL; int count=0; for(node *i=head;i;last=i,i=i->next) count+=(i->name==name);...
Nie ma lekko. Z bloku zaalokowanego przez malloc() nie zwolnisz sobie dowolnego kawałka. Kiedyś męczyłem coś takiego (edytor tekstu), to zrobiłem tak, że alokowałem sobie bufory powiedzmy po 10kB (to na Amidze jeszcze, tak że 10kB to dosć dużo było ;]). Podczas ładowania pliku kolejne bufory były zapełniane (ale nie do końca, algorytm starał się układać...
Problem masz taki: NULL do aktualny , następnie chcesz spod adresu 0 wyciągnąć dlugosc co kończy się błędem. Najlepiej gdybyś zapakował obsługę listy w klasę.
No dokładnie tak, jak zrobiłeś, tyle że porównanie powinno dotyczyć następnika, a nie bieżącego (jak napisałem). No a z tym pierwszym to prosta sprawa - najpierw sprawdzasz jego i przesuwasz wskaźnik początku listy na następny, gdyby zaszła potrzeba jego usunięcia. A później już lecisz podanym algorytmem.
struct wezel *iter = pierwszy; while(iter) { iter = iter->nastepny; } to na pewno nie zadziała poprawnie. przejdzie przez wszystkie elementy, ale po takiej pętli iter zawsze będzie równy NULL. co do tego: Lista l; l+="zabawa"; co do tego to na oko bez kompilowania wydaje mi się że skoro "zabawa" jest typu const char*...
W funkcji void druklista(struct Osoba *&head) lista jest przewijana do końca. Zamiast void druklista(struct Osoba *&head) daj void druklista(struct Osoba *head)
nie pamietam juz pascala ale moze chociaz idee ci podsune. Z zalozenia listy jednokierunkowej wiadomo ze ma wskazanie na glowe, a kazda komorka posiada wartosc i wskazanie na kolejny element. Szukasz elementu przedostatniego i zapisujesz pod x. Wtedy element x.next (czyli ostatni) zapisujesz pod zmienna pomocnicza. x.next:=nil (tak pozbywasz sie zapetlenia)....
Nie wiem czy o to Ci chodziło, ale ten programik robi mniej więcej kolejkę typu FIFO: [syntax=cpp] #include <iostream> #include <string> #include <iomanip> using namespace std; struct dane { int x; dane *nastepny; }; class kolejka { dane *pierwszy; dane *ostatni; int ile; public: // konstruktor kolejka(); // destruktor ~kolejka();...
Bo przekazujesz do fdodawanie head jako pojecynczy wskaźnik a powinieneś jako wskaźnik do wskaźnika - tak jak było na początku. Widzę, że nie bardzo łapiesz róznicę, np. niepotrzebnie tworzysz zmienne lokalne w fwypisywanie. nagłowek fdodawanie musi mieć postać: [syntax=c]void fdodawanie(struct baza **head) [/syntax] Widzę, że probujesz dopisywać nowe...
Witaj, Najpierw sam przetestuj kod- podstawowe bledy: -na gcc musialem dodac include <stdbool.h> - " " w include oznacza ze pliki naglowka znajduja sie w katalogu z aplikacja- zmien to na <> bo sa to standardowe pliki .h - masz nie zamknieta klamre w funkcji DodajOsobe, co powoduje blad - funkcja UsunOsobe nic nie zwraca (void), a pozniej...
hej mam na zaliczenie małe zadanko Napisz program, który wczyta ze standardowego wejścia ciąg liczb całkowitych o dowolnej długości i umieści go na liście jednokierunkowej. Napisz funkcję, która z listy usunie każdy taki element, którego wartość jest równa elementowi poprzedniemu. Wyświetl zawartość listy przed i po wykonaniu operacji usuwania. mam...
Niech zgadne... projekt z Algorytmów i struktur danych? ;) Tylko czemu lista jednokierunkowa? Mieliśmy robić na dwukierunkowej :P
Witam, ZeeWolf tak chyba troszkę źle ten rysunek zrobiłeś. Strzałki powinny iść w drugą stronę, bo pola wskazują na następny element, a nie na odwrót, ale to tylko taki mały szczegół. Ojj musisz zacząć od stworzenia struktury, która będzie zawierała kilka pól które będą przechowywały dane, ale najważniejszym polem będzie to które będzie wskazywało na...
Ja też nie zdążyłem i dla tego poprawiłem tylko 1. funkcję :-). Druga funkcja po poprawkach: [syntax=cpp] struct lista { int liczba; lista* wskaznik_nastepnego; }; //lista*glowa- glowa listy jest dana void nazwa_funkcji () { lista* aktualny; lista* poprzedni; lista* tmp; int suma; suma=0; int licznik; licznik=1; aktualny= glowa; aktualny= aktualny->wskaznik_nastepnego;//pomij...
[url=http://www.elektroda.pl/rtvforum/to... masz nieco o liście. Może Ci pomoże.
"Wypinasz" element z sieci A i dołączasz do sieci B.
Witam Właśnie napisałem swoje wypociny w postaci jak radziliście mi na forum. Popatrzcie sami. #include <iostream> #include <fstream> #include<conio.h> #include <new> using namespace std; struct Element { int liczba,liczba1; Element *nastepny; }; int main(void) { Element *glowa = NULL; //lista pusta Element...
Bo listę jednokierunkową, powinno się usuwać stosując "trik" :) Jeżeli usuniesz pierwszy element z listy, to najpierw musisz zapamiętać "pozycję" kolejnego elementu, albo stracisz tę "pozycję" bezpowrotnie.
Witam, Mam prośbę o sprawdzenie zadania: Napisz funkcję zliczającą ilość elementów o polu k większym od sumy pól k dwóch ostatnich elementów listy lub o polu inf o ilości znaków większej od wartości przekazywanej przez parametr funkcji. Dany jest node* nastepny (next). [syntax=cpp] struct node { int k; string inf; node* next_adres; }; struct list {...
Witam Mam do zrobienia takie zadanie, prosze o pomoc gdyz jestem troche tępy z tego a od m.in tego bedzie zależało moje zaliczenie: Dana jest klasa: class lista { int dane; lista *nastepny; } Przy pomocy której utworzona jest lista jednokierunkowa. 1) Napisz metodę znajdującą sie w klasie Zadanie, która wypisze na ekran wszystkie liczby...
Niestety, ale rozwiązanie podane przez Dariusz Bismor nie jest poprawnym. A to dlatego, że w treści zadania podano : Stwórz poprzez wskaźniki łańcuch 100 kulek Dotychczas spotkałem się z wieloma akademickimi zadankami, chyba ani razu nie chodziło w nich o skorzystanie z gotowych kontenerów typu std::list czy std::vector, jeśli treść była podobna do...
volatile to trzeba, zazwyczaj jak jakaś wartośc zmiennej się nie zmienia dostatecznie szybko to należy użyć volatile. to wykluczą rolę "wróżki" z procesora. ale tutaj tego nie trzeba. masz błąd logiczny, w pierwszym programie wygląda to tak: -przejdź na koniec listy; -wypisz przedostatni element; -stwórz nowy element; -wypisz przedostatni element; -dodaj...
Witam! Dostałem "przerwanie niemaskowalne" od Żony ale już je obsłużyłem i mogę działać dalej. Dopisywanie na początek listy jednokierunkowej jest najprostszym sposobem tworzenia listy. Jednakże wynikowy porządek elementów jest odwrotnością do porządku "ich pojawiania się". W niektórych zastosowaniach jest to niewskazane. W konsekwencji czasami elementy...
Nie napisałeś czy sten stos i odkładane wartosci są ustalane na etapie kompilacji czy dynamicznie w czasie działania programu. Ale niezależnie od momentu to: 1) wskaznik w C jest zawsze jakimś adresem POCZĄTKU miejsca gdzie jest składowana "wartść", aby ją skopiować na "stos" trzeba ustalić jej "wielkość". 2) sizeof() jest pseudo-funkcją która w czasie...
Dla n=4 podany kod realizuje listę przedstawioną na rysunku. W pierwszym przebiegu tworzony jest nowy element listy z wartością 4 i element ten wskazuje na p (tj. NIL), a wskaźnik p wskazuje na ten element (z 4), n jest zmniejszone o 1. W drugim przebiegu tworzony jest nowy element z wartością 3, element ten wskazuje na p (tj. tym razem element z wartością...
Do usuwania z listy jednokierunkowej zawsze potrzebujesz element poprzednika, którego następnik ustawiasz na następnik elementu usuwanego, po czym zwalniasz element usuwany. Wyjątek stanowi pierwszy element listy.
A czy możecie korzystać ze struktur dynamicznych (np listy jednokierunkowe)?
Czekasz na gotowca i możesz się nie doczekać. Najpierw powinieneś wiedzieć czym są listy jednokierunkowe, później spróbować napisać program. Jeśli będziesz miał jakieś problemy podczas pisania, to wtedy zadaj konkretne pytanie. PS: użyj opcji szukaj, bo temat był już poruszany.
Prostą implementację listy spokojnie znajdziesz w internecie pod hasłem "lista jednokierunkowa c". Mając działającą listę masz już połowę drogi za sobą. Musisz przyswoić sobie temat wskaźników, bo bez tego będzie krucho. Najwięcej zabawy zejdzie Ci ze zrobieniem interfejsu użytkownika, ale to się najczęściej sprowadza do użycia printf, scanf, switch,...
poczytaj o listach dynamicznych jednokierunkowych
Nie potrzebujesz pomocniczo używać tablicy. Sortowanie przez wybieranie można równie dobrze zastosować bezpośrednio do listy. Musisz tylko umieć "odpiąć" element z miesca na liście, w którym się znajduje, i przenieść go na początek. Żeby to zrobić na liście jednokierunkowej, jaką masz (czyli tylko wskaźnik "następny" a bez wskaźnika "poprzedni"), trzeba...
Pierw musze podać programowi nazwe katalogu. Nastepnie musi on przeszukac ten katalog i podkatalogi w poszukiwaniu plików mp3. Jeżeli znajdzie to musi na liście jednokierunkowej zapisać ścieżke do tego pliku, nazwe pliku, autora. Jak to zrobić? Żeby odczytac nazwe autora i tytuł pliku trzeba go otworzyc jako .txt Wie ktos jak to zrobić? byłbym wdzięczny
Co do FIFO, możesz ją zrobić jako listę jednokierunkową nie-cykliczną z tym że dodawanie tylko na końcu listy, a pobieranie tylko z początku listy. Najlepiej nazwać te metody push() i pop() jak przy stosie albo np. add() i get() Kolejka FIFO (First In First Out) działa na bardzo prostej zasadzie - jak kolejka w sklepie - pierwszy wszedłeś - pierwszy...
Mam do wykonania pewien program, który ma za zadanie wczytywać liczby podawane przez użytkownika tak długo, aż podana zostanie liczba 12 i wyświetlić wszystkie liczby po zakończeniu wczytywania w kolejności odwrotnej niż kolejność podawania ich przez użytkownika. Program nie może korzystać z tablic i konieczne jest użycie listy jednokierunkowej. Napisałem...
Witam! Już wiem, że należy operować na listach. Myślę, że wystarczą tutaj listy jednokierunkowe. Zdefiniuj zatem np następujący typ listy: [syntax=c]struct neuron { double liczba; /* tutaj wpisujesz przeczytaną liczbę z pliku */ struct neuron *inna_lista; /* tutaj wskaźnik do innej listy bądź jej elementu. Dzięki niemu uzyskasz oczekiwaną "listę w liście"...
Witam serdecznie, mam problem z napisaniem obsługi listy dynamicznej jednokierunkowej gdzie każdy nowy węzeł jest jednocześnie początkiem nowej innej listy dynamicznej i wypełniać ją danymi. Struktury list zamieszczam poniżej [syntax=cpp] struct TDane { int dane; TDane *nast; }; struct TList { int key; TDane dane; TList *nast; }; [/syntax] Nie wiem...
Użyłem konwersji w drugą stronę. Mam bowiem strukturę bazującą na zmiennych klasy string i drugą strukturę na tablicach znaków. Konwersję na char'y wykonuję by zapisać dane do pliku binarnego i móc je później odczytać. Po odczytaniu muszę te dane znów przekonwertować na stringi i zapisać je w liście jednokierunkowej, która operuje na stringach. Dane...
Jeżeli nie możesz zastosować listy dwu-kierunkowej, to problem się komplikuje. Przy każdej zamianie wskaźników, musisz sprawdzać całą listę elementów i odnaleźć element który wskazuje na pierwszy z dwu elementów który chcesz zmienić. Zapamiętać który to element, i po zamianie sortowanych elementów, zmienić wskaźnik także w tym elemencie. Dla pięciu...
Przede szystkim, wcale nie twierdzę że jestem tu od kogoś mądrzejszy, nie zamierzam nikogo pouczać bo sam się czuję nieco "na gruncie grzązkim". ale pewne pomysły i skojarzenia mam, to się nimi dzielę i może pomogą. Kategoryczny ton moich stwierdzeń wynika tylko z mniejszej dbałości o formę niż o treść w ograniczonym czasie. założenie 1 każdy element...
Alternator do naprawy ,przekaznik kontrolki do wymiany i eliminacja szkodliwego dogrzewania świec. Mozna zacząć od końca listy. I te altki nie maja sprzęgła jednokierunkowego.
Ale że co? Nie znasz algorytmów, czy nie potrafisz ich zaimplementować? Tu znajdziesz opis algorytmów: http://www.dzyszla.aplus.pl/download-32.... i implementację w C, ale z wykorzystaniem tablic. Poza tym przykładowe kody operacji na listach.
Ponieważ wysłałeś mi info na PW, więc odpowiadam. Sprawę menu wyjaśniłem w swojej książce, a przykłady są dostępne za darmo dla wszystkich na ftp Helionu, tam też jest kompletny kod menu. Jeśli chcesz to go użyj, jeśli masz wątpliwości to chętnie pomogę i je wyjaśnię. Jak widzisz generalnie filozofii w tym wielkiej nie ma, po prostu struktura w formie...
Witam! Zrobiłem program z kilkunastoma funkcjami na liście jednokierunkowej. Wszystko ładnie pięknie działa. Wybrane funkcje np. dodawania wywołuję z odpowiednimi zmiennymi na sztywno. Następnie je zapisuję do pliku tekstowego. Teraz mam problem z wczytaniem ich z tegoż pliku. Proszę o rady. Zapisywanie mam tak: [syntax=c]void ZapisOsobDoPliku(O* glowa,...
Jednak nadal nie mam pomysłu jak to przetworzyć na Delphi. Może nie patrz jak przetworzyć, ale jak to od zera zrobić z pomocą filozofii Delphi gdzie podstawą jest użycie gotowych klas lub komponentów, posiadających w sobie mnóstwo użytecznych metod i własności. Nie mam w tej chwili nigdzie zainstalowanego Delphi, to nie za bardzo mam jak pomóc szczegółowo,...
Dzięki za uwagi, przemyślę je, ale co do wykorzystywania gotowych funkcji z bibliotek - zadanie polegało na napisaniu tego samemu. Wiem, że nie jest to idealne, ale w miarę działa. ;) Rzeczywiście można by podciągnąć te wszystkie funkcje pod metody jakiejś klasy i zastosować większą enkapsulację, cin i cout nie powinny być w funkcjach do obsługi listy...
sprzęgło jednokierunkowe łożysko jednokierunkowe sprzęgło jednokierunkowe skrzyni
cewka klimatyzacja peugeot volvo silnika piekarnik samsung naprawy
Wzmacniacz do kolumn Pylon Pearl 20: moc i specyfikacja Whirlpool płyta indukcyjna – lokalizacja cewki, budowa, NTC, błąd F0E8