1637: 线性表-插入第i个元素(链式存储)
金币值:2
定数:9
时间限制:1.000 s
内存限制:128 M
解决:36
提交:81
正确率:44.44% 命题人:
题目描述
已知一个单链表,要求在该单链表中第i个结点之前插入一个元素(假设1<=i<=单链表的长度+1)。
输入
第1行输入一个整数n,表示单链表中数据元素的个数
第2行输入n个整数,表示单链表中存储的具体数据(要求用头插法建立单链表)
第3行输入两个整数i和e,分别表示插入的位置以及被插入的值
第2行输入n个整数,表示单链表中存储的具体数据(要求用头插法建立单链表)
第3行输入两个整数i和e,分别表示插入的位置以及被插入的值
输出
第4行输出插入之后的单链表
样例输入 复制
4
1 2 3 4
3 100
样例输出 复制
4 3 100 2 1
提示
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;/* ElemType类型根据实际情况而定,这里假设为int */
typedef struct Node {
ElemType data;
struct Node *next;
} LNode,*linkList;
void initList(linkList &L);
void inputList(linkList L);
void insertList(linkList L,int i,ElemType e);
void printList(linkList L);
int main(void) {
int i;
ElemType e;
linkList head;
initList(head);
inputList(head);
scanf("%d %d",&i,&e);
insertList(head,i,e);
printList(head);
return 0;
}
void initList(linkList &L) {
L=new LNode;
L->next=NULL;
}
void inputList(linkList L) {
int n;
linkList p;
scanf("%d",&n);
for(int i=0; i<n; i++) {
p = new LNode;
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
void printList(linkList L) {
linkList p=L->next;
while(p!=NULL) {
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
/*仅提交以下代码*/
void insertList(linkList L,int i,ElemType e) {
}