Тема: Допоможіть виконати цікаву задачку
Створіть дві черги. Перевірте, чи є одна з черг частиною іншої. Рішення в програмі оформляйте через підпрограми.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Допоможіть виконати цікаву задачку
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Створіть дві черги. Перевірте, чи є одна з черг частиною іншої. Рішення в програмі оформляйте через підпрограми.
І що ж тут цікавого, крім того, що доведеться зберігати копії меншої черги?
просто дуже потрібно виконати цю задачу, а я заплутась вкрай...
просто дуже потрібно виконати цю задачу, а я заплутась вкрай...
якщо покажете свій код, то ми зможемо допомогти розібратись, що в ньому не так
Додав теґ [ 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();
}
0. використовуйте теги code. Цього разу зроблю за вас.
1. в умові не було ООП. Це, звісно, чудово, що ви так зробили, претензій тут бути не може, але вимога "оформляйте через підпрограми" стає трохи надмірною. Ну, ніби завдання було помножити в стовпчик, а ви взяли інтеграл. Ще й не через таблиці, а лімітом.
2. Я не бачу спроби розв'язати поставлену задачу. Ви більшу частину коду створюєте код для черги (замість стандартного std::queue); а от власне пошуку однієї черги в іншій немає.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися