Dodanie elementu do kolejki

0

Witam, wiem, że jest mnóstwo rozwiązań w internecie tylko wszystkie bazują na jednej strukturze. Mi dano za zadanie zrobić to w ten sposób:

struct elem {
int dane;
elem* nast;
};
struct kolejka {
elem* poczatek;
elem* koniec;
};

void add(kolejka &kol, int x)

Bardzo proszę o pomoc, chodzi o napisanie funkcji add

0

Witam, wiem, że jest mnóstwo rozwiązań w internecie tylko wszystkie bazują na jednej strukturze.

Chcesz powiedzieć, że w internecie nie ma przykładu listy kierunkowej zawierającej int? Przykład dodawania do listy znajdziesz nawet <a href=https://4programmers.net/Forum/C_i_C++/334513-lista_zadanie?p=1643197#id1643197>na tym forum</a>.

EDIT
Odpowiedź do komentarza

to nie jest lista kierunkowa, tylko kolejka

@Niaopbi Kolejka to wysoko poziomowy koncept, który możesz zaimplementować np. w postaci listy jednokierunkowej przetrzymując wskaźnik do pierwszego i ostatniego elementu. Przecież właśnie listy jednokierunkowej chcesz użyć jako implementacji (sam wkleiłeś kod) więc w czym problem?

0

Wpadłem na taki pomysł:

struct elem {
int dane;
elem* nast;
};
struct kolejka {
elem* poczatek;
elem* koniec;
};

void add(kolejka &kol, int x){
elem* el = new elem;
el -> dane = x;
if(kol.poczatek != NULL){
    kol.koniec -> nast = el;
    kol.koniec = el;
}else{
    kol.poczatek = el;
    kol.koniec = el;
}

}

0

Kolejka to wysoko poziomowy koncept, który możesz zaimplementować np. w postaci listy jednokierunkowej przetrzymując wskaźnik do pierwszego i ostatniego elementu

Lista jednokierunkowa, jako kolejka to słaby pomysł, chyba, że Masz na myśli listę jednokierunkową w obu kierunkach? :)

0

Lista jednokierunkowa, jako kolejka to słaby pomysł

Może, ale technicznie rzecz biorąc to wystarczy. Trzymasz ostatni wskaźnik, żeby dodać na koniec kolejki i początek żeby z kolejki wyjąć. Potem początek przesuwasz na next.

0

To jest kolejka bazująca na liście dwukierunkowej.

Hasło: "c++ queue based on bidirectional list"
Dwa pierwsze wyniki:
https://www.tutorialspoint.com/cplusplus-program-to-implement-queue-using-linked-list
https://www.geeksforgeeks.org/queue-linked-list-implementation/

1 użytkowników online, w tym zalogowanych: 0, gości: 1