• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Różnica - kolejka vs lista - C

Object Storage Arubacloud
0 głosów
880 wizyt
pytanie zadane 6 stycznia 2019 w C i C++ przez gorgonkowa Obywatel (1,810 p.)
edycja 6 stycznia 2019 przez gorgonkowa

Hejka. Chciałabym się dopytać, czym się różni w kodzie programu lista na podstawie tego kodu kolejki w  języku C?

Struktura

typedef struct
{
    int id_towaru, nr_trans, nr_kasy;
    float cena;
    struct tZakup *next;
} tZakup;
 
typedef tZakup *wZakup;
 
wZakup poczatek, koniec;

Kod:

float Srednia(tZakup *p)
{
    float cena = 0;
    int i = 0;
 
    if(p == NULL)
    {
        printf("Brak elementow!");
        return 0;
    }
 
    while(p)
    {
        if(p->nr_kasy == 5)
        {
            ++i;
            cena += p->cena;
        }
 
        p = p->next;
    }
 
    return cena / i;
}


 

1 odpowiedź

0 głosów
odpowiedź 6 stycznia 2019 przez mokrowski Mędrzec (155,460 p.)
Nie do końca rozumiem pytanie. Lista jest kontenerem służebnym dla możliwych innych struktur wyższego rzędu. Jedna z tych struktur to kolejka. Możesz po prostu traktować listę jak kolejkę i tyle.
komentarz 6 stycznia 2019 przez gorgonkowa Obywatel (1,810 p.)
Może spróbuję sprecyzować pytanie... Za kilka dni jest kolokwium z listy, tyle, że... Pan Doktor wymyśla z głowy strukturę kodu, podobnie jak wymyślił tą strukturę do kolejki i nie mam pojęcia czego się spodziewać, ani jak zabrać się za dany problem. Oczywiście samą teorię znam, jednak... chciałabym również wiedzieć tą praktyczną część na jakiej zasadzie pisać, żeby było poprawnie.
komentarz 6 stycznia 2019 przez mokrowski Mędrzec (155,460 p.)
Ok, no to najprościej jak się da i bardzo nieformalnie.

Jak weźmiesz listę jednokierunkową, to potrafisz na niej wykonać tylko przejście "od głowy do ogona". Jak "żołnierze którzy nigdy się nie cofali" :) Z takiej listy możesz zrobić np. stos. Dodajesz dane na początku i zdejmujesz z początku. Ostatni element będzie miał wskaźnik na adres pusty.

Jak do tej listy (jednokierunkowej), dodasz pole pamiętające "gdzie jest ogon", zrobisz z tego dodatkowo dwustronną kolejkę. Dodasz coś do jej głowy czyli jako pierwszy element i do ogona czyli jako ostatni.

Jak zamiast pamiętania gdzie jest ogon zapewnisz by lista się zapętlała (ostatni element wskazuje na następny pierwszy), będziesz miał bufor cykliczny. Z niego zbudujesz oczywiście także stos.

itd...

Nie wiem czy o takie tłumaczenie Ci chodziło... bo kod po prostu traktuję listę służebnie i tyle...
komentarz 6 stycznia 2019 przez gorgonkowa Obywatel (1,810 p.)
Hmm troszeczkę mi się rozjaśniło :) Fajnie wytłumaczyłeś :) A jeśli mogę Ciebie zapytać, w jaki sposób można "uczyć się" i z jakich źródeł, aby właśnie na takim kolokwium, gdy pan doktor wymyśli podobną strukturę, napisać funkcję, o którą prosi? :P Przeważnie daje funkcje wyznaczania średniej, wyznaczania osób o konkretnych nazwiskach lub osiągnięciach sportowych, a także wyznaczania ilości osób, które spełniają jakiś warunek (np. mają więcej niż 50 lat a mniej niż 60 lat).
Próbowałam dość długo szukać w internecie różnych poradników, jednak... nie ukrywam, że nie jest to proste, aby wbić się w umysł pana doktora i przewidzieć, jaką funkcję wymyśli... Stąd to jest takie niesprecyzowane pytanie, bo sama nie wiem, jak to ugryźć, żeby ta nauka była efektywna, chociaż... pozostało kilka dni i sama nie wiem, co mogę zrobić, aby jakoś spróbować powalczyć z zaliczeniem takiej struktury danych. :/
komentarz 6 stycznia 2019 przez mokrowski Mędrzec (155,460 p.)
Oczywiście że praktyka i doświadczenie. Niektórym jednak pomaga takie "algorytmiczne" podejście:

https://duckduckgo.com/?q=container+choice+C%2B%2B+&t=canonical&ia=images&iax=images&iai=http%3A%2F%2Fwww.adrinael.net%2Fcontainerchoice

Pytanie do wyszukiwarki: container choice C++

Pierwsza z brzegu grafika.

Jak wolisz to to: https://stackoverflow.com/questions/471432/in-which-scenario-do-i-use-a-particular-stl-container

Podobne pytania

+1 głos
1 odpowiedź 157 wizyt
pytanie zadane 30 grudnia 2018 w C i C++ przez gorgonkowa Obywatel (1,810 p.)
0 głosów
1 odpowiedź 603 wizyt
pytanie zadane 21 sierpnia 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
1 odpowiedź 313 wizyt

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...