#include "stdafx.h" #include #include #include #include using namespace std; struct Prvek { string name; int r, g, b; Prvek* prev; Prvek* next; }; Prvek* first = nullptr; Prvek* last = nullptr; void InsertLast (Prvek* p) { if (first == nullptr) { first = p; last = p; p->prev = nullptr; p->next = nullptr; } else { last->next = p; p->prev = last; last = p; p->next = nullptr; } } void InsertAfter (Prvek * ref, Prvek* p) { Prvek* a = ref->next; if (a==nullptr) last = p; else a->prev = p; p->next = a; p->prev = ref; ref->next = p; } Prvek* Create (string name0, int r0, int g0, int b) { Prvek* ptr; ptr = new Prvek; ptr->name = name0; ptr->r = r0; ptr->g = g0; ptr->b = b; ptr->prev = nullptr; ptr->next = nullptr; return ptr; } void Print () { Prvek* p = first; while (p != nullptr) { cout << p->name << ", " << p->r << ", " << p->g << ", " << p->b; cout << endl; p = p->next; } } #include void Check () { if (first == nullptr) assert (last == nullptr); else { assert (last != nullptr); int cnt = 0; Prvek* p = first; while (p != nullptr) { cnt++; p = p->next; } p = last; while (p != nullptr) { cnt--; p = p->prev; } assert (cnt == 0); } } int main() { cout << "Zacatek" << endl; Check (); InsertLast (Create ("cervena", 255, 0, 0)); Check (); InsertLast (Create ("modra", 0, 0, 255)); InsertAfter (first, Create ("zluta", 255, 255, 0)); InsertAfter (last, Create ("cerna", 0, 0, 0)); Check (); Print (); system ("pause"); return 0; }