2023 1 Provide a fully generic version of the class NodeList of Code Fragment 6 9 using | Assignment Collections
Computer Science 2023 class NodeList of Code Fragment 6.9
2023 1 Provide a fully generic version of the class NodeList of Code Fragment 6 9 using | Assignment Collections
1. Provide a fully generic version of the class NodeList of Code Fragment 6.9 using a templated class.
2. Provide the missing housekeeping functions (copy constructor, assignment operator, and destructor) for the class NodeList, which was presented in Code Fragment 6.9.
Code Fragment 6.9: Class NodeList realizing the C++-based list ADT.
To keep the code simple, we have not implemented any error checking. We assume that the functions of Code Fragment 6.8 are defined outside the class body. Because of this, when referring to the nested class Iterator, we need to apply the scope resolution operator, as in NodeList::Iterator, so the compiler knows that we are referring to the iterator type associated with NodeList. Observe that the increment and decrement operators not only update the position, but they also return areference to the updated position. This makes it possible to use the result of the increment operation, as in “q = ++p.” Having defined the supporting structures Node and Iterator, let us now present the declaration of class NodeList, which is given in Code Fragment 6.9. The class declaration begins by inserting the Node and Iterator definitions from Code Fragments 6.6 and 6.7. This is followed by the public members, that consist of a simple default constructor and the members of the list ADT.We have omitted the standard housekeeping functions from our class definition. These include the class destructor, a copy constructor, and an assignment operator. The definition of the destructor is important, since this class allocates memory, so it is necessary to delete this memory when an object of this type is destroyed. We leave the implementation of these housekeeping functions as an exercise (R-6.12).
typedef int Elem;// list base element typeclass NodeList {// node-based listprivate: // insert Node declaration here. . .public: // insert Iterator declaration here. . .public: NodeList();// default constructorint size() const;// list sizebool empty() const;// is the list empty?Iterator begin() const;// beginning positionIterator end() const;// (just beyond) last positionvoid insertFront(const Elem& e);// insert at frontvoid insertBack(const Elem& e);// insert at rearvoid insert(const Iterator& p, const Elem& e);// insert e before pvoid eraseFront();// remove firstvoid eraseBack();// remove lastvoid erase(const Iterator& p);// remove p// housekeeping functions omitted. . .private:// data membersint n;// number of itemsNode* header;// head-of-list sentinelNode* trailer;// tail-of-list sentinel};
We give our students 100% satisfaction with their assignments, which is one of the most important reasons students prefer us to other helpers. Our professional group and planners have more than ten years of rich experience. The only reason is that we have successfully helped more than 100000 students with their assignments on our inception days. Our expert group has more than 2200 professionals in different topics, and that is not all; we get more than 300 jobs every day more than 90% of the assignment get the conversion for payment.