Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C] Lista dwukierunkowa z wartownikiem

proszty 19 Gru 2011 22:04 2702 4
  • #1 19 Gru 2011 22:04
    proszty
    Poziom 8  

    Czesc.

    Poradzilem sobie z lista dwukierunkowa, ale nie do konca rozumiem jak zaimplementowac do mojej wartownika. Nie wiem tez jak go uzyc, chcialbym:
    - dodac element do listy
    - usunac element z listy
    - wyczyscic liste
    - wyszukac element na liscie
    - zamiana 2 elementow miejscami
    - scalanie dwoch list


    Zamieszczam kod mojej poprzedniej listy. Pogrubilem elementy zadan, ktore nie do konca sobie wyobrazam z wykorzystaniem wartownika.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 4
  • #2 20 Gru 2011 00:40
    McMonster
    Poziom 32  

    Operacje wykonuje się tak samo, tylko trzeba pilnować, żeby wartownik zostawał tam, gdzie powinien. Przy czyszczeniu listy przepinasz wartownika na początek i odrzucasz resztę. W wyszukiwaniu przed każdym przejściem wgłąb listy sprawdzasz, czy nie dotarłeś do wartownika. Przy zamianie elementów miejscami sprawdzasz po kolei, czy nie są wartownikami. I na koniec przy scalaniu pozbywasz się zbędnego wartownika, który ma wylądować w środku.

    0
  • #3 20 Gru 2011 00:50
    proszty
    Poziom 8  

    Czy wartownik to po prostu element? Czy przyjmuje wartosci? Nie rozumiem jego calej ideii. Jak zmien isie moja sturktura badz te funkcje, ktore juz napisalem?

    Pozdrawiam

    0
  • #4 20 Gru 2011 02:13
    McMonster
    Poziom 32  

    To zwykły element. O ile pamiętam, to można go traktować jako taki, który przechowuje wartość, lub nie używać go do przechowywania, ale warto to potwierdzić w jakiejś mądrej książce do podstaw programowania. W tym pierwszym wypadku jedyna różnica jest taka, że przechowujemy osobno wskaźnik na ten element, który jest ostatni na liście, a w tym drugim zostawiamy pusty i po prostu pilnujemy, żeby właśnie taki znajdywał się zawsze na końcu listy.

    0
  • #5 20 Gru 2011 15:19
    proszty
    Poziom 8  

    Ok, wiele mi dalo do myslenia to co napisal Pan @up. Dzieki wielkie za pomoc, wstawiam tyle co zrobilem (bez scalania 2 list narazie):

    Kod: c
    Zaloguj się, aby zobaczyć kod

    1