NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Spojový seznam výpis přeživšího

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Erik Mészaroš:16.1.2018 21:32

Ahoj potřeboval bych pomoct mám vypsat poslední ho přeživšího v ruské ruletě ale nevím jak na to...Přikládám zdroják.

#include <iostream>

#include <time.h>

struct Node {

bool data;

Node* next;

};

class LinkedList {

public:

LinkedList()

{

head = NULL;

tail = NULL;

}

void CreateNode(bool value)

{

Node* temp = new Node();

temp->data = value;

temp->next = NULL;

if (head == NULL)

{

head = temp;

tail = temp;

temp = NULL;

}

else

{

tail->next = temp;

tail = temp;

}

}

void DisplayList()

{

Node* temp = new Node();

temp = head;

while (temp != NULL) {

std::cout << temp->data << ", ";

temp = temp->next;

}

std::cout << std::endl;

}

bool GetPos(int pos)

{

Node* cur = new Node;

cur = head;

for (int i = 0; i < pos; i++)

{

if(cur->next != nullptr)

cur = cur->next;

}

return cur->data;

}

void SetPos(int pos, bool value)

{

Node* cur = new Node;

cur = head;

for (int i = 0; i < pos; i++)

{

cur = cur->next;

}

cur->data = value;

}

void DeletePosition(int pos)

{

Node* current = new Node;

Node* previous = new Node;

current = head;

for (int i = 1; i<pos; i++)

{

if (current->next != nullptr)

{

previous = current;

current = current->next;

}

}

previous->next = current->next;

}

private:

Node* head;

Node* tail;

};

int main()

{

LinkedList* vojaci = new LinkedList();

int rozsah = 10;

const int puvRozsah = rozsah;

int mrtvy = 0;

int posledni = 0;

int k = 0;

srand(time(0));

for (int i = 0; i < rozsah; i++)

{

vojaci->CreateNode(true);

}

int i = rand()%rozsah;

while (mrtvy < (puvRozsah - 1))

{

if(vojaci->GetPos(i))

if (k < 5)

k++;

else

{

//vojaci->DisplayList();

vojaci->DeletePositi­on(rozsah);

vojaci->DisplayList();

mrtvy++;

std::cout << "Pocet mrtvych: " << mrtvy << std::endl;

std::cout << "--------------------------------------" << std::endl;

rozsah -= 1;

k = 0;

}

if (i == (rozsah - 1))

{

i = 0;

}

else

i++;

}

std::cout << "Ukonci stiskem libovolne klavesy";

vojaci = NULL;

std::cin.get();

return 0;

}

 
Odpovědět
16.1.2018 21:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.