-
Notifications
You must be signed in to change notification settings - Fork 0
/
List.hpp
executable file
·53 lines (44 loc) · 1.31 KB
/
List.hpp
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
#ifndef LINKEDLIST_HPP
#define LINKEDLIST_HPP
#include <iostream>
#include "Node.hpp"
using namespace std;
class List {
private:
Node *head;
public:
List() {
head = nullptr;
}
void addHead(int data) {
Node *newHead = new Node(data);
newHead->setNextNode(head);
head = newHead;
}
void deleteNode(int data) {
Node* node = head;
if(!searchNode(data)) return;
if(node->getData() == data){
head = node->getNextNode();
delete(node);
}else{
while(node->getNextNode()->getData() != data)
node = node->getNextNode();
Node *nodeToDelete = node->getNextNode();
node->setNextNode(nodeToDelete->getNextNode());
delete(nodeToDelete);
}
}
Node *searchNode(int data) {
for(Node *node = head; node; node = node->getNextNode()) {
if (node->getData() == data) return node;
}return nullptr;
}
void printList() {
cout << "List ([Data | Memory Address]): ";
for(Node *node = head; node != nullptr; node = node->getNextNode())
cout<<"["<<node->getData()<< " | "<< node <<"] -> ";
cout << "NULL" << endl;
}
};
#endif LINKEDLIST_HPP