|
//file SLL02.cpp //date 04/25/2005 //author aou //csis250.tripod.com /////////////////////////////////////////////////////////// //includes /////////////////////////////////////////////////////////// #include <iostream> using namespace std; class CInfo { private: int value; CInfo *next; friend class CSLL; friend ostream & operator << (ostream & bob, const CSLL & list); }; class CSLL { private: int n; CInfo *first; CInfo *last; void initialize(void); public: CSLL(void); //default constructor CSLL(int n); //create a list with given integer value friend ostream & operator << (ostream & bob, const CSLL & list); CSLL(char ch); //constructs based on value of ch CSLL(int low, int high); CSLL(int low, int high, int n); CSLL(const CSLL &list); void input(void); bool insert(int x); bool insert(const CSLL & list2); bool operator == (const CSLL &list2); }; void main(void) { CSLL myList; cout << myList << endl; myList.insert(666); cout << myList << endl; myList.insert(555); cout << myList << endl; } bool CSLL::insert(int x) { /* set agent to available block of type CInfo copy x to value part of new block set next part of new block to NULL set first to agent set last to agent */ CInfo *agent; agent = new CInfo; agent->value = x; agent ->next = NULL; if (n == 0) { first = agent; last = agent; } else { last->next = agent; last = agent; } this->n++; return true; } ostream & operator << (ostream & bob, const CSLL & list) { bob << "SLL(" << list.n << "): "; CInfo *agent; agent = list.first; while (agent != NULL) { bob << agent->value << ' '; agent = agent->next; } return bob; } CSLL::CSLL(void) { this->initialize(); } void CSLL::initialize(void) { //n = 0; //(*this).n = 0; this->n = 0; this->first = NULL; this->last = NULL; } |