Расчетно графическая работа по Хеш-Таблицам
Автор: kdxd • Июнь 9, 2019 • Реферат • 3,936 Слов (16 Страниц) • 346 Просмотры
Написать класс с именем Bank, содержащий следующие данные(ORDER) :
• рассчетный счет плательщика;
• рассчетный счет получателя;
• перечисляемая сумма в рублях;
Исходный код
#include
#include
template <typename T>
class LinkedList {
public:
struct Node {
T value;
Node *prev, *next;
};
LinkedList() : head(nullptr), tail(nullptr) {}
void add(const T &value) {
Node *newTail = new Node;
newTail->value = value;
newTail->next = nullptr;
if (tail)
newTail->prev = tail,
tail->next = newTail,
tail = newTail;
else
head = tail = newTail;
}
template <typename predicate>
Node* find(predicate p) { //Нахождение эллемента
Node *t = head;
while (t && !p(t->value))
t = t->next;
return t;
}
Node* find(const T& value) {
return find([&value](const T& x) { return x == value; });
}
void remove(Node *node) { //Удаление эллемента
if (node == nullptr) return;
if (node == head && node == tail)
head = tail = nullptr;
else if (node == head) {
head = head->next;
head->prev = nullptr;
}
else if (node == tail) {
tail = tail->prev;
tail->next = nullptr;
}
else {
node->prev->next = node->next;
node->next->prev = node->prev;
}
delete node;
}
Node* getFirst() const { return head; }
Node* getLast() const { return tail; }
~LinkedList() {
while (head) remove(head);
}
private:
Node *head;
Node *tail;
};
class Order { // класс для хранения информации по платежам
int payer; // расчётный счёт плательщика
int beneficiary; // расчётный счёт получателя
int money; // переведённая сумма в рублях
public:
explicit Order(int payer = -1, int beneficiary = -1, int money = -1) :
payer(payer), beneficiary(beneficiary), money(money) {}
int getPayerAccount() const {
return payer;
}
...