Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <utility>
- #include <fstream>
- #include <memory>
- using namespace std;
- template < typename T >
- class List;
- template <typename T >
- struct Node
- {
- friend class List<T>;
- Node()
- {
- next = nullptr;
- }
- explicit Node ( const T & element )
- {
- value = element;
- next = nullptr;
- }
- T value;
- Node<T> * next;
- };
- template < typename T >
- class List{
- private :
- Node<T> * firstElement;
- int size;
- public:
- List()
- {
- size = 0;
- firstElement = nullptr;
- }
- explicit List( const T & element )
- {
- size = 1;
- firstElement = new Node<T>(element);
- firstElement->next = nullptr;
- }
- void AddElement( const T & element )
- {
- auto * iter = firstElement;
- while ( iter->next != nullptr ){
- iter = iter->next;
- }
- iter->next = new Node<T> (element);
- }
- friend ostream & operator <<( ostream & os , List<T> & l )
- {
- if( l.size == 0 ){
- return os;
- }
- auto * iter = l.firstElement;
- while(iter->next != nullptr)
- {
- os << iter->value << ",";
- iter = iter->next;
- }
- os << iter->value;
- return os;
- }
- };
- int main()
- {
- List<int> l(5 );
- l.AddElement(6);
- cout << l << endl ;
- }
Advertisement
Add Comment
Please, Sign In to add comment