Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- using namespace std;
- class List
- {
- public:
- List()
- {
- Head = new Node();
- }
- ~List()
- {
- delete Head;
- }
- void add(INT value)
- {
- Node* tmp = new Node(value, Head);
- Head = tmp;
- }
- void copy(const List& other)
- {
- delete this->Head;
- Head = new Node(other.Head->value);
- Node* src = this->Head;
- Node* dst = other.Head->next;
- while (dst->next)
- {
- src->next = new Node(dst->value);
- src = src->next;
- dst = dst->next;
- }
- src->next = new Node(dst->value);
- }
- public:
- struct Node
- {
- Node* next;
- INT value;
- Node(INT val = 0, Node* next = NULL) : value(val), next(next) {}
- ~Node()
- {
- if (next)
- delete next;
- }
- } *Head;
- };
- int main()
- {
- List a, b;
- a.add(10);
- a.add(50);
- a.add(780);
- a.add(13);
- for (List::Node* p = a.Head; p->next; p = p->next)
- {
- cout << p->value << endl;
- }
- cout << endl;
- b.copy(a);
- for (List::Node* p = b.Head; p->next; p = p->next)
- {
- cout << p->value << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement