-
Notifications
You must be signed in to change notification settings - Fork 0
/
LeafNode.cpp
117 lines (99 loc) · 2.65 KB
/
LeafNode.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
/**
@file LeafNode.cpp
@brief Implementation of LeafNode class
@author Brandon Theisen, Jason Pederson, Kelvin Shultz, Chris, Jared
*/
#include "LeafNode.h"
#include <vector>
#include <iostream>
using namespace std;
//-----CONSTRUCTOR-----\\
/**Default Constructor for LeafNode
@post Creates a leaf node*/
template<class T>
LeafNode<T>::LeafNode()
{
//Node<T>::Node();
//capacity = 6; //6 is default
//Default Constructor
}
//-----CONSTRUCTOR WITH CAPACITY-----\\
/**Default Constructor for LeafNode
@param cap: Capicity of the node
@post Creates a leaf node with a set capicity*/
template<class T>
LeafNode<T>::LeafNode(int cap)
{
Node<T>::Node(cap);
}
//-----COPY CONSTRUCTOR AS NODE-----\\
/**Copy constructor that copies the node that calls it
@pre Accepts a node to be copied
@param Node to be copied
@post Copies the node that called the constructor*/
template<class T>
LeafNode<T>::LeafNode(const Node<T>& newCopy)
{}
//-----ADD NEW KEY-----\\
/**Add a key
@pre Node must have room for the new key. size() <= capacity
@param newKey: key that will be entered
@post Return true or false on if the key was successfully added into the vector of keys*/
template<class T>
int LeafNode<T>::addKey(int newKey)
{
//return true;
return Node<T>::addKey(newKey);
}
//-----GET CHILD-----\\
/**Returns the child where the key located
@param key: key to be searched for
@post Returns the node where the key is located*/
template<class T>
Node<T>* LeafNode<T>::getChild(int key)
{
return this;
}
/**Sets the child of a node
@pre Called onto a interior node
@param newChild: The child to be set
@param position: Position of the node
@post Set the child to the node which is being called by*/
template<class T>
void LeafNode<T>::setChild(Node<T>* newChild, int position)
{
cout << "Don't call me!" << endl;
}
//-----SPLIT-----\\
/**Split node
@param newNodePtr: Pointer to the new node that is being created
@post Splits the node by placing half of the key into a new node*/
template<class T>
void LeafNode<T>::split(Node<T>* &newNodePtr)
{
Node<T>::split(newNodePtr);
}
//-----MERGE-----\\
/**Merge two nodes together
@param otherNodePtr: Pointer of the node the be merged with
@post Merges the two nodes together, placing all keys into the orinigal node*/
template<class T>
void LeafNode<T>::mergeNodes(Node<T>* &otherNodePtr)
{
Node<T>::mergeNodes(otherNodePtr);
}
//-----DESTRUCTOR-----\\
//
template<class T>
LeafNode<T>::~LeafNode()
{
//Destructor
}
/*--These functions are implemented in Node.cpp
//
int getSize();
Node<T>* getParent();
void setParent(Node<T>* newParentPtr);
int getKeyAt(int position);
bool contains(int key);
*/