1

Тема: Допоможіть виконати цікаву задачку

Створіть дві черги. Перевірте, чи є одна з черг частиною іншої. Рішення в програмі оформляйте через підпрограми.

2

Re: Допоможіть виконати цікаву задачку

І що ж тут цікавого, крім того, що доведеться зберігати копії меншої черги?

3

Re: Допоможіть виконати цікаву задачку

просто дуже потрібно виконати цю задачу, а я заплутась вкрай...

4

Re: Допоможіть виконати цікаву задачку

Lominska69 написав:

просто дуже потрібно виконати цю задачу, а я заплутась вкрай...

якщо покажете свій код, то ми зможемо допомогти розібратись, що в ньому не так

Подякували: koala, Lominska69, leofun013

5 Востаннє редагувалося koala (17.10.2018 17:05:01)

Re: Допоможіть виконати цікаву задачку

Додав теґ [ code ] - Koala

#include<iostream>
#include<cstdlib>
using namespace std;

struct Node {
    int x = 0;
    Node *next = 0;
};
class cherga { Node *t=new Node;
    Node *first = t;
    Node *last = t;
    int nodes = 0;
public:
    void setNode(int e) {
        Node *q = new Node;
        q->x = e;
        last->next = q;
        last = last->next;
        nodes++;
    }
    void deleteNode() {
        Node *n2 = first->next;
        delete first; 
        Node *first = n2;
        nodes--;
    }//ia i?ao??
    void print() { Print(first); }
    void Print(Node *node) {
        cout << node->x << " ";
        if(node->next != 0) { Print(node->next); }
    }
};
class lab {
    cherga A; cherga B;
    void printCh() {
        cout << "cherga A:";
        A.print();
        cout << endl << "cherga B:";
        B.print();
    }
    cherga select() {
        int o;
        cout << endl << "viberit cherdu:1)A 2)B ";
        cin >> o;
        switch(o) {
            case 1: return A;
            case 2: return B;
        }
    }
    void add(cherga C) {
        int i;
        cin >> i;
        C.setNode(i);
    }
    void delet(cherga C) {
        C.deleteNode();
    }//ia i?ao?? deleteNode
    void Rand(cherga C) {
        cout << "rozmir chergu:";
        int i;
        cin >> i;
        for(int c = 0; c < i; c++) {
            C.setNode(rand() % 10);
        }
    }
public:
    void start() {
        int k = 1; cherga I;
        while(k > 0) {
            cout << endl << "0)end 1)addNode 2)randAddNode  4)print";
            cin >> k;
            switch(k) {
                case 1:
                    add(select());
                    break;
                case 2:
                    Rand(select());
                    break;
                case 3:
                    delet(select());//ia i?ao?? deleteNode
                    break;
                case 4:
                    printCh();
            }
        }
    }
};
int main() {
    lab a;
    a.start();
}

6

Re: Допоможіть виконати цікаву задачку

0. використовуйте теги code. Цього разу зроблю за вас.
1. в умові не було ООП. Це, звісно, чудово, що ви так зробили, претензій тут бути не може, але вимога "оформляйте через підпрограми" стає трохи надмірною. Ну, ніби завдання було помножити в стовпчик, а ви взяли інтеграл. Ще й не через таблиці, а лімітом.
2. Я не бачу спроби розв'язати поставлену задачу. Ви більшу частину коду створюєте код для черги (замість стандартного std::queue); а от власне пошуку однієї черги в іншій немає.

Подякували: leofun01, FakiNyan2