-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.cpp
129 lines (103 loc) · 3.31 KB
/
example.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include "OneWayLinkedList.h"
using namespace std;
int main(int argc, char** argv) {
// Create new list
OneWayLinkedList* list = new OneWayLinkedList();
// Add some nodes
list->addEnd(1);
list->addEnd(2);
list->addEnd(3);
list->addEnd(4);
list->addEnd(5);
list->addEnd(110);
list->addBegin(100);
// Print all nodes
list->print();
// Print the size of the list
cout << "Size: " << list->getSize() << endl;
// Reverse the current list
cout << "Reverse the list" << endl;
list->reverse();
// Print all nodes
list->print();
// Reverse the current list with a recursive function
cout << "Reverse the list with a recursive function" << endl;
list->reverseRecursive(list->getFirstNode());
// Print all nodes
list->print();
// Print the middle node
Node* middle = list->getMiddleNode();
if (middle != NULL) {
cout << "Middle node: " << middle->data << endl;
} else {
cout << "Middle node: NULL" << endl;
}
// Print all nodes
list->print();
// Check has a node with a specific data in the list or not
cout << "Has 110: " << list->has(110) << endl;
cout << "Has 111: " << list->has(111) << endl;
// Get the node by searching with data
Node* node = list->getNode(110);
if(node != NULL) {
cout << "Node data: " << node->data << endl;
} else {
cout << "Node not found" << endl;
}
// Get the node by searching with index
node = list->getNodeByIndex(0);
if(node != NULL) {
cout << "Node data: " << node->data << endl;
} else {
cout << "Node not found" << endl;
}
// Get the node by searching with index
node = list->getNodeByIndex(60);
if(node != NULL) {
cout << "Node data: " << node->data << endl;
} else {
cout << "Node not found" << endl;
}
// Print count of nodes
cout << "Count: " << list->count() << endl;
// Print count of nodes (recursive)
cout << "Count (recursive): " << list->countRecursive(list->getFirstNode()) << endl;
// Print the first node
node = list->getFirstNode();
if(node != NULL) {
cout << "First node data: " << node->data << endl;
} else {
cout << "Node not found" << endl;
}
// Print the last node
node = list->getLastNode();
if(node != NULL) {
cout << "Last node data: " << node->data << endl;
} else {
cout << "Node not found" << endl;
}
// Deep copy the list
cout << "Deep copy the list" << endl;
OneWayLinkedList* list2 = new OneWayLinkedList();
list2 = list->deepCopy();
// Deep copy the nodes
Node* node2 = list->deepCopyNodes();
if (node2 == NULL) {
cout << "Node not found" << endl;
} else {
cout << "Node data: " << node2->data << endl;
}
// Delete all nodes
cout << "Delete all nodes" << endl;
list->deleteAll();
// Print all nodes
cout << "Print the new list" << endl;
list2->print();
// Print all nodes
cout << "Print the first list" << endl;
list->print();
// Print the size of the list
cout << "Size: " << list->getSize() << endl;
return 0;
}