C++ 程序在 STL 中实现 Forward_List

c++server side programmingprogramming

STL 中的 Forward List 实现单链表。列表与 forward_list 不同,后者会跟踪下一个和上一个元素。

而 Forward List 只跟踪下一个元素的位置,因此增加了存储每个元素所需的存储空间。forward_list 的缺点是不能直接访问单个元素,也不能向后迭代。

函数和说明:

从 main() 开始,我们调用了以下函数:
   fl.resize() = 返回 forward_list 的大小调整。
   fl.push_front() = 用于将元素从前面推入 foward_list。
   fl.remove() = 从 forward_list 中删除元素。
   fl.unique() = 从 forward_list 中删除重复元素。
   fl.reverse() = 反转 forward_list。
   fl.front() = 返回 forward_list 的前部元素

示例代码

#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;
}

输出

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

相关文章