1: // Created by Frank M. Carrano and Timothy M. Henry. 2: // Copyright (c) 2017 Pearson Education, Hoboken, New Jersey. 4: // Listing C4-5 6: template<class ItemType> 7: class DoubleNode 8: { 9: private: 10: ItemType item; // A data item 11: std::shared_ptr<DoubleNode<ItemType>> next; // Pointer to next node 12: std::weak_ptr<DoubleNode<ItemType>> previous; // Pointer to previous node 13: public: 14: // Constructors, destructors, and methods 15: }; // end DoubleNode