[go: up one dir, main page]

Menu

[r353]: / libpetey / linked.h  Maximize  Restore  History

Download this file

66 lines (52 with data), 1.5 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
#ifndef LINKED_H_INCLUDED
#define LINKED_H_INCLUDED 1
#pragma interface
namespace libpetey {
template <class ds>
class ll_element {
public:
ds data;
ll_element<ds> *next;
ll_element(ds new_data); //constructor--adds data
~ll_element();
void del(); //deletes all elements ahead of it
};
template <class ds>
ll_element<ds>::ll_element(ds new_data) {
data=new_data;
next=NULL;
}
template <class ds>
ll_element<ds>::~ll_element() {
}
template <class ds>
void ll_element<ds>::del() {
if (next != NULL) next->del();
delete next;
}
template <class ds>
class linked_list {
protected:
ll_element<ds> *head;
ll_element<ds> *tail;
ll_element<ds> *current; //last element searched
long n_elements;
long last; //last index searched
public:
linked_list();
~linked_list();
long size_of();
long push(ds data); //pushes the first element
long pop(ds &data); //pops the first element
long add(ds data); //adds an element at the end
ds *make_array(long &n); //converts to an array
ds del(long n); //deletes specified element
ds operator [] (long n); //gets the specified element
void reset();
};
template <class ds>
inline long linked_list<ds>::size_of() {
return n_elements;
}
} //end namespace libpetey
#endif