SWUSTOJ #953 单链表的删除操作的实现

SWUSTOJ #953 单链表的删除操作的实现

  • 题目
    • 输入
    • 输出
    • 样例输入
    • 样例输出
  • 源代码

题目

建立长度为 n 的单链表,删除第 i 个结点之前的结点。

输入

第一行为自然数 n,表示链式线性表的长度;
第二行为 n 个自然数表示链式线性表各元素值;
第三行为指定的删除参数 i 。

输出

指定删除位置合法时候,输出删除元素后的链式线性表的所有元素,元素之间用一个空格隔开。
输入不合法,输出"error!"。

样例输入

5
1 2 3 4 5
3

样例输出

1 3 4 5

源代码

#include<iostream>
#include<list>
#include<algorithm>using namespace std;int main()
{list<int> List;int n;cin >> n;int arr[1000];for (int i = 0; i < n; i++){cin >> arr[i];List.push_back(arr[i]);}int m;cin >> m; // 输入要删除的参数list<int>::iterator iter;iter = List.begin();if (m > List.size() || m <= 1) // 输入不合法{cout << "error!";return 0;}for (int i=1; i!=m && i<List.size(); i++){iter++;}iter--; // 定位前一个节点List.erase(iter); // 删除前一个节点iter = List.begin();for (iter = List.begin(); iter != List.end(); iter++){cout << *iter <<" ";}return 0;
}

SWUSTOJ #953 单链表的删除操作的实现

SWUSTOJ #953 单链表的删除操作的实现

  • 题目
    • 输入
    • 输出
    • 样例输入
    • 样例输出
  • 源代码

题目

建立长度为 n 的单链表,删除第 i 个结点之前的结点。

输入

第一行为自然数 n,表示链式线性表的长度;
第二行为 n 个自然数表示链式线性表各元素值;
第三行为指定的删除参数 i 。

输出

指定删除位置合法时候,输出删除元素后的链式线性表的所有元素,元素之间用一个空格隔开。
输入不合法,输出"error!"。

样例输入

5
1 2 3 4 5
3

样例输出

1 3 4 5

源代码

#include<iostream>
#include<list>
#include<algorithm>using namespace std;int main()
{list<int> List;int n;cin >> n;int arr[1000];for (int i = 0; i < n; i++){cin >> arr[i];List.push_back(arr[i]);}int m;cin >> m; // 输入要删除的参数list<int>::iterator iter;iter = List.begin();if (m > List.size() || m <= 1) // 输入不合法{cout << "error!";return 0;}for (int i=1; i!=m && i<List.size(); i++){iter++;}iter--; // 定位前一个节点List.erase(iter); // 删除前一个节点iter = List.begin();for (iter = List.begin(); iter != List.end(); iter++){cout << *iter <<" ";}return 0;
}