1637: 线性表-插入第i个元素(链式存储)
金币值:2
定数:9
时间限制:1.000 s
内存限制:128 M
正确:11
提交:28
正确率:39.29% 命题人:
题目描述
已知一个单链表,要求在该单链表中第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(li nkList &L); void inputList(li nkList L); void insertList(li nkList L,int i,ElemType e); void printList(li nkList L); int main(void) { int i; ElemType e; li nkList head; initList(head); inputList(head); scanf("%d %d",&i,&e); insertList(head,i,e); printList(head); return 0; } void initList(li nkList &L) { L=new LNode; L->next=NULL; } void inputList(li nkList L) { int n; li nkList 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(li nkList L) { li nkList p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n"); } /*仅提交以下代码*/ void insertList(li nkList L,int i,ElemType e) { }