-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNode.cpp
More file actions
68 lines (53 loc) · 1.21 KB
/
Copy pathNode.cpp
File metadata and controls
68 lines (53 loc) · 1.21 KB
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
/** @file
*
* @course CS1521
* @section 1
* @term Spring 2023
*
* Implementation file for a node that uses smart pointers.
*
* Adapted from page 297 in Carrano 7e.
*
* @author Frank M. Carrano
* @author Timothy Henry
* @author Steve Holtz
*
* @date 14 Mar 2023
*
* @version 7.0 */
#include <memory>
#include "Node.h"
template <typename ItemType>
Node<ItemType>::Node(const ItemType& anItem,
std::shared_ptr<Node<ItemType>> nextNodePtr)
: item(anItem),
next(nextNodePtr) {
}
#ifdef DTOR_TEST
#include <iostream>
template <typename ItemType>
Node<ItemType>::~Node() {
std::cerr << "Node destructor called. on:"
<< "\n\titem: "
<< item
<< "\n\tnext: "
<< next
<< std::endl;
}
#endif
template <typename ItemType>
void Node<ItemType>::setItem(const ItemType& anItem) {
item = anItem;
}
template <typename ItemType>
void Node<ItemType>::setNext(const std::shared_ptr<Node<ItemType>>& nextNodePtr) {
next = nextNodePtr;
}
template <typename ItemType>
ItemType Node<ItemType>::getItem() const {
return item;
}
template <typename ItemType>
auto Node<ItemType>::getNext() const {
return next;
}