Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Разработать программу на языке С++

Addk Ученик (229), на голосовании 3 месяца назад
Разработать программу на языке С++, реализующую алгоритмы работы с кольцевым списком.
Программа должна формировать и выводить на экран исходные списки, производить с ними действия согласно варианту и выводить результат. Даны 2 кольцевых списка, содержащие фамилии студентов 2-х групп. Перевести L студентов из 1-й группы во вторую. Число пересчета - К.
Голосование за лучший ответ
ֆհαδoᵂ☄ᴷίʆʆer Знаток (368) 3 месяца назад
#include <iostream>
#include <string>
using namespace std;

struct Node {
string name;
Node* next;
};

class CircularLinkedList {
private:
Node* head;

public:
CircularLinkedList() : head(nullptr) {}

void insert(string name) {
Node* newNode = new Node;
newNode->name = name;

if (head == nullptr) {
head = newNode;
head->next = head;
}
else {
Node* temp = head;
while (temp->next != head) {
temp = temp->next;
}
temp->next = newNode;
newNode->next = head;
}
}

void transferStudents(int L, int K) {
if (head == nullptr || head->next == head) {
cout << "Error: Not enough students in the groups" << endl;
return;
}

Node* current = head;
int count = 1;

while (count < L) {
current = current->next;
count++;
}

Node* newHead = current->next;
current->next = newHead->next;

current = newHead;
while (current->next != newHead) {
current = current->next;
}

Node* temp = head;
while (K > 1) {
temp = temp->next;
K--;
}

newHead->next = temp->next;
temp->next = newHead;
}

void display() {
if (head == nullptr) {
cout << "List is empty" << endl;
return;
}

Node* temp = head;
do {
cout << temp->name << " ";
temp = temp->next;
} while (temp != head);
cout << endl;
}
};

int main() {
CircularLinkedList group1, group2;
group1.insert("Alice");
group1.insert("Bob");
group1.insert("Charlie");
group1.insert("David");
group1.insert("Emma");

group2.insert("Mike");
group2.insert("Nancy");
group2.insert("Oliver");

cout << "Group 1 before transfer: ";
group1.display();
cout << "Group 2 before transfer: ";
group2.display();

int L = 2; // Number of students to transfer
int K = 1; // Place to insert in group 2
group1.transferStudents(L, K);

cout << "Group 1 after transfer: ";
group1.display();
cout << "Group 2 after transfer: ";
group2.display();

return 0;
}
держи прогу на с++ которая выполнит твои условия
Похожие вопросы