C++ Program to Implement Forward_List in STL


Forward list in STL implements singly linked list. List is different by forward_list that list keeps track to both next and previous elements.

While forward list keeps track of location of only next elements, thus increasing the storage space required to store each element. The disadvantage of forward_list is that is individual elements cannot be accessed directly and it cannot be iterated backwards.

Functions and descriptions:

From main(), we have called following functions:
   fl.resize() = Returns the resize of forward_list.
   fl.push_front() = It is used to push elements into a foward_list from the front.
   fl.remove() = Deletes elements from forward_list.
   fl.unique() = Deletes duplicate elements from forward_list.
   fl.reverse() = Reverses the forward_list.
   fl.front() = Returns the front elements of forward_list

Example Code

#include<iostream>
#include <forward_list>
#include <string>
#include <cstdlib>
using namespace std;
int main() {
   forward_list<int> fl;
   forward_list<int>::iterator it;
   int c, n;
   while (1) {
      cout<<"1.Insert Element at the Front"<<endl;
      cout<<"2.Delete Element at the Front"<<endl;
      cout<<"3.Front Element of Forward List"<<endl;
      cout<<"4.Resize Forward List"<<endl;
      cout<<"5.Remove Elements with Specific Values"<<endl;
      cout<<"6.Remove Duplicate Values"<<endl;
      cout<<"7.Reverse the order of elements"<<endl;
      cout<<"8.Display Forward List"<<endl;
      cout<<"9.Exit"<<endl;
      cout<<"Enter your Choice: ";
      cin>>c;
      switch(c) {
         case 1:
            cout<<"Enter value to be inserted at the front: ";
            cin>>n;
            fl.push_front(n);
         break;
         case 2:
            n = fl.front();
            fl.pop_front();
            cout<<"Element "<<n<<" deleted"<<endl;
         break;
         case 3:
            cout<<"Front Element of the Forward List: ";
            cout<<fl.front()<<endl;
         break;
         case 4:
            cout<<"Enter new size of Forward List: ";
            cin>>n;
            if (n <= fl.max_size())
               fl.resize(n);
            else
               fl.resize(n, 0);
         break;
         case 5:
            cout<<"Enter element to be deleted: ";
            cin>>n;
            fl.remove(n);
         break;
         case 6:
            fl.unique();
            cout<<"Duplicate Items Deleted"<<endl;
         break;
         case 7:
            fl.reverse();
            cout<<"Forward List reversed"<<endl;
         break;
         case 8:
            cout<<"Elements of Forward List: ";
            for (it = fl.begin(); it != fl.end(); it++)
               cout<<*it<<" ";
            cout<<endl;
         break;
         case 9:
            exit(1);
         break;
         default:
            cout<<"Wrong Choice"<<endl;
      }
   }
return 0;
}

Output

1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 1
Enter value to be inserted at the front: 1
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 1
Enter value to be inserted at the front: 2
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 1
Enter value to be inserted at the front: 3
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 3
Front Element of the Forward List: 3
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 4
Enter new size of Forward List: 6
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 1
Enter value to be inserted at the front: 1
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 5
Enter element to be deleted: 1
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 8
Elements of Forward List: 3 2 0 0 0
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 1
Enter value to be inserted at the front: 4
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 1
Enter value to be inserted at the front: 5
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 1
Enter value to be inserted at the front: 8
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 8
Elements of Forward List: 8 5 4 3 2 0 0 0
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 47
Wrong Choice
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 7
Forward List reversed
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 8
Elements of Forward List: 0 0 0 2 3 4 5 8
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 4
Enter new size of Forward List: 4
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit

Enter your Choice: 8
Elements of Forward List: 0 0 0 2
1.Insert Element at the Front
2.Delete Element at the Front
3.Front Element of Forward List
4.Resize Forward List
5.Remove Elements with Specific Values
6.Remove Duplicate Values
7.Reverse the order of elements
8.Display Forward List
9.Exit
Enter your Choice: 9
Exit code: 1

Updated on: 30-Jul-2019

159 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements