Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба5 / Laba 5 (3)
.cpp#include <iostream>
#include <locale>
using namespace std;
class ListNode {
protected:
int data;
public:
ListNode(int d) : data(d) {}
virtual ~ListNode() {}
virtual void print() const = 0;
};
class SimpleListNode : public ListNode {
SimpleListNode* next;
public:
SimpleListNode(int d) : ListNode(d), next(nullptr) {}
void setNext(SimpleListNode* node) { next = node; }
void print() const override {
cout << data;
if (next) {
cout << " -> ";
next->print();
} else {
cout << " -> NULL" << endl;
}
}
};
class DoublyListNode : public ListNode {
DoublyListNode* next;
DoublyListNode* prev;
public:
DoublyListNode(int d) : ListNode(d), next(nullptr), prev(nullptr) {}
void setNext(DoublyListNode* node) { next = node; }
void setPrev(DoublyListNode* node) { prev = node; }
void print() const override {
cout << "(";
if (prev) cout << prev->data;
else cout << "NULL";
cout << ") <- " << data << " -> (";
if (next) cout << next->data;
else cout << "NULL";
cout << ")" << endl;
}
};
int main() {
setlocale(LC_ALL, "ru_RU.UTF-8");
SimpleListNode* node1 = new SimpleListNode(1);
SimpleListNode* node2 = new SimpleListNode(2);
node1->setNext(node2);
cout << "Однонаправленный список: ";
node1->print();
DoublyListNode* dnode1 = new DoublyListNode(1);
DoublyListNode* dnode2 = new DoublyListNode(2);
dnode1->setNext(dnode2);
dnode2->setPrev(dnode1);
cout << "Двунаправленный список: ";
dnode1->print();
dnode2->print();
return 0;
}
Соседние файлы в папке Лаба5
