#include "stdafx.h"
 
#include <stdlib.h>
#include <iostream>
#include <string>
#include <cassert>
 
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 <cassert>
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;
}
 
seznam2018_st_a.txt · Last modified: 2018/02/21 16:56 by 147.32.8.110
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki