函数题:链表中插入结点
要求实现函数,在带头结点的单链表的第i个结点之前插入一个数据域值为x的结点。若i的值非法(太大或太小),则不进行插入操作。
### 函数接口定义:
c++
void Insert(Node* head, int i, int x);
其中参数head是指向单链表头结点的指针(头指针),结点的指针域为next,数据域为data;参数i为待插入的位置。
### 裁判测试程序样例:
c++
#include<iostream>
using namespace std;
struct Node {
int data; // 数据域
Node* next; // 指针域
};
void Insert(Node* head, int i, int x);
void Traverse(Node* head);
Node *Create(int n);
int main() {
int n;
while(cin>>n) {
Node *h=Create(n);
int i, x;
cin>>i>>x;
Insert(h, i, x);
Traverse(h);
}
return 0;
}
### 输入样例:
in
5
5 4 3 2 1
9 7
4
1 2 4 5
3 3
### 输出样例:
out
5 4 3 2 1
1 2 3 4 5
答案:若无答案欢迎评论
### 函数接口定义:
c++
void Insert(Node* head, int i, int x);
其中参数head是指向单链表头结点的指针(头指针),结点的指针域为next,数据域为data;参数i为待插入的位置。
### 裁判测试程序样例:
c++
#include<iostream>
using namespace std;
struct Node {
int data; // 数据域
Node* next; // 指针域
};
void Insert(Node* head, int i, int x);
void Traverse(Node* head);
Node *Create(int n);
int main() {
int n;
while(cin>>n) {
Node *h=Create(n);
int i, x;
cin>>i>>x;
Insert(h, i, x);
Traverse(h);
}
return 0;
}
### 输入样例:
in
5
5 4 3 2 1
9 7
4
1 2 4 5
3 3
### 输出样例:
out
5 4 3 2 1
1 2 3 4 5
答案:若无答案欢迎评论