#include <iostream.h>
#include "apstring.h"
template <class ANYTHING>
class link {
public:
link *next;
ANYTHING element;
link (ANYTHING e, link *l) {
element = e;
next=l;
}
};
template <class ANYTHING>
class list {
private:
link<ANYTHING> *head;
link<ANYTHING> *current;
public:
list(){
head=NULL;
current=head;
}
void add(ANYTHING element){
head=new link<ANYTHING> (element,head);
}
void advance(){
//if (current->next)
current=current->next;
}
ANYTHING access(){
return current->element;
}
int tail(){
return !current;
}
void reset(){
current=head;
}
};
struct Student
{
apstring name;
int AS;
float GPA;
Student(int i):AS(i) {}
Student() {}
};
list<int> numbers;
list<Student> students;
main() {
//add numbers
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
numbers.add(5);
//use now
numbers.reset();
cout<<"My Numbers are ";
for(;!numbers.tail();numbers.advance())
cout<<numbers.access()<<" ";
cout<<endl<<endl;
Student s1(555);
s1.name="Jonathan Fishbeck";
s1.GPA=4;
Student s2(555);
s2.name="Jim Caggy";
s2.GPA=3.9;
//add students
students.add(s1);
students.add(s2);
//now use
students.reset();
cout<<"My Students are \n";
for(;!students.tail();students.advance()) {
cout<<"NAME : "<<students.access().name<<endl;
cout<<"AS : "<<students.access().AS<<endl;
cout<<"GPA : "<<students.access().GPA<<endl<<endl;
}
cout<<endl;
}
|
#include <iostream.h>
#include "apstring.h"
template <class ANYTHING>
class link {
public:
link *next;
ANYTHING *element;
link (ANYTHING *e, link *l) {
element = e;
next=l;
}
};
template <class ANYTHING>
class list {
private:
link<ANYTHING> *head;
link<ANYTHING> *current;
public:
list(){
head=NULL;
current=head;
}
void add(ANYTHING *element){
head=new link<ANYTHING> (element,head);
}
void advance(){
//if (current->next)
current=current->next;
}
ANYTHING* access(){
return current->element;
}
int tail(){
return !current;
}
void reset(){
current=head;
}
};
struct Student
{
apstring name;
int AS;
float GPA;
Student(int i):AS(i) {}
Student() {}
};
list<int> numbers;
list<Student> students;
main() {
//add numbers
int one=1,two=2,three=3,four=4,five=5;
numbers.add(&one);
numbers.add(&two);
numbers.add(&three);
numbers.add(&four);
numbers.add(&five);
//use now
numbers.reset();
cout<<"My Numbers are ";
for(;!numbers.tail();numbers.advance())
cout<<*numbers.access()<<" ";
cout<<endl<<endl;
Student * s1= new Student(555);
s1->name="Jonathan Fishbeck";
s1->GPA=4;
Student * s2= new Student(555);
s2->name="Jim Caggy ";
s2->GPA=3.9;
//add students
students.add(s1);
students.add(s2);
//now use
students.reset();
cout<<"My Students are \n";
for(;!students.tail();students.advance()) {
cout<<"NAME : "<<students.access()->name<<endl;
cout<<"AS : "<<students.access()->AS<<endl;
cout<<"GPA : "<<students.access()->GPA<<endl<<endl;
}
cout<<endl;
}
|
OUTPUT:
My Numbers are 5 4 3 2 1
My Students are
NAME : Jim Caggy
AS : 555
GPA : 3.9
NAME : Jonathan Fishbeck
AS : 555
GPA : 4
|