create linked list in c++ code example

Example 1: linked list in c++ stl

#include <bits/stdc++.h>
#include <iostream>
#include <list>
#include <iterator>

#define ll long long

using namespace std;

//function to print all the elements of the linked list
void showList(list <int> l){
	list <int> :: iterator it; //create an iterator according to the data structure
	for(it = l.begin(); it != l.end(); it++){
		cout<<*it<<" ";
	}
	
}	


int main(){
	
	list <int> l1;
	list <int> l2;
	
	for(int i=0; i<10; i++){
		l1.push_back(i*2); //fill list 1 with multiples of 2
		l2.push_back(i*3); //fill list 2 with multiples of 3
	}
	
	cout<<"content of list 1 is "<<endl;
	showList(l1);
	cout<<endl;
	
	cout<<"content of list 2 is "<<endl;
	showList(l2);
	cout<<endl;
	
	//reverse the first list
	l1.reverse();
	showList(l1);
	cout<<endl;
	
	//sort the first list
	l1.sort();
	showList(l1);
	cout<<endl;
	
	//removing an element from both sides
	l2.pop_front();
	l2.pop_back();
	
	//adding an element from both sides
	l2.push_back(10);
	l2.push_front(20);
	
	
    return 0;
}

Example 2: linked list class c++ basic implementation

template<typename T>
class list {
  public:

    struct node {
        T value;
        node* next;
    };

    list() : hd(nullptr), tl(nullptr) {}

    node* head() { return hd; }
    node* tail() { return tl; }

    void insert(node* prior, T value);

    node* at(int i);    

    void erase(node* prior);
    void clear();

    void push_back(T value);
    void pop_back();

    void push_front(T value);
    void pop_front();

    int size();    

  private:
    node* hd, tl;
}