-
Notifications
You must be signed in to change notification settings - Fork 0
/
Templates.h
91 lines (72 loc) · 1.36 KB
/
Templates.h
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
//#ifndef __STANDARD_TEMPLATES__
//#define __STANDARD_TEMPLATES__
#pragma once
#include <vector>
template<typename Type> class Stack
{
public:
Stack();
bool is_full();
bool is_empty();
bool push(const Type &item);
bool pop(Type &item);
bool empty();
int get_stack_depth();
~Stack();
private:
int top;
enum {max=10};
Type items[max];
};
template<typename Type> Stack<Type>::Stack()
{
top = 0;
}
template<typename Type> bool Stack<Type>::is_full()
{
return top==max;
}
template<typename Type> bool Stack<Type>::is_empty()
{
return top==0;
}
template<typename Type> bool Stack<Type>::empty()
{
top = 0;
return true;
}
template<typename Type> bool Stack<Type>::push(const Type &item)
{
if (!is_full())
{
items[top++] = item;
return true;
}
return false;
}
template<typename Type> bool Stack<Type>::pop(Type &item)
{
if (!is_empty())
{
item = items[--top];
return true;
}
return false;
}
template<typename Type> int Stack<Type>::get_stack_depth()
{
return top;
}
template<typename Type> Stack<Type>::~Stack()
{
}
template<typename TKey, typename TValue> class Dictionary
{
};
template <typename Type> class SingleLinkedList
{
private:
SingleLinkedList *head;
public:
};
//#endif