|
//DSortedList01.cpp //date: 10/30/2002 //author: AOU //Dynamic sorted list //////////////////////////////////////////////////////////// // Include files //////////////////////////////////////////////////////////// #include<iostream.h> #include<math.h> #include<stdlib.h> #include<time.h> //////////////////////////////////////////////////////////// // Constants //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// const int MAX_SIZE = 10; //maximum entries allowed in a list const int UNDEFINED = -9999; const int MAX_VALUE = 5; const int TEST_COUNT = 20; const int INFINITY = 32000; //////////////////////////////////////////////////////////// //class CNode //////////////////////////////////////////////////////////// class CNode { private: int m_key; // int age; // char name[20]; // char socsec[10]; CNode *m_next; public: CNode(void); CNode(int x); CNode(char ch); void display(void); //... friend class CDSortedList; }; //////////////////////////////////////////////////////////// //class CDSortedList //////////////////////////////////////////////////////////// class CDSortedList { private: int m_count; CNode *m_first; public: CDSortedList(void); CDSortedList(int n); CDSortedList(char ch); void display(void); bool insert(int x); }; //////////////////////////////////////////////////////////// //void main(void) //////////////////////////////////////////////////////////// void main(void) { CNode n1; n1.display(); cout << endl; CDSortedList myList; myList.display(); } //////////////////////////////////////////////////////////// //void CDSortedList::display(void) //////////////////////////////////////////////////////////// void CDSortedList::display(void) { CNode *p; p = this->m_first; while (p != NULL) { p->display(); p = p->m_next; } cout << endl; } //////////////////////////////////////////////////////////// //CDSortedList::CDSortedList(void) //////////////////////////////////////////////////////////// CDSortedList::CDSortedList(void) { /* create two nodes one pointed to by p1, other pointed to by p2 make first point to p1 make p1 point to p2 make p2 point to nothing put -infin in p1 node put +infin in p2 node set count = 0 */ CNode *p1 = new CNode; CNode *p2 = new CNode; this->m_first = p1; p1->m_next = p2; p2->m_next = NULL; p1->m_key = -INFINITY; p2->m_key = +INFINITY; } //////////////////////////////////////////////////////////// //CNode::CNode(void) //////////////////////////////////////////////////////////// CNode::CNode(void) { this->m_key = UNDEFINED; this->m_next = NULL; } //////////////////////////////////////////////////////////// //void CNode::display(void) //////////////////////////////////////////////////////////// void CNode::display(void) { cout << '(' << this->m_key << " ->" << this->m_next << ") "; } /* SAMPLE RUN: (-9999 ->0x00000000) (-32000 ->0x00320B00) (32000 ->0x00000000) Press any key to continue */ |