SHAOXIAOJ正在加载中...

1637: 线性表-插入第i个元素(链式存储)

金币值:2 定数:9 时间限制:1.000 s 内存限制:128 M
正确:11 提交:28 正确率:39.29% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 数据结构-线性表

题目描述

已知一个单链表,要求在该单链表中第i个结点之前插入一个元素(假设1<=i<=单链表的长度+1)。

输入格式

第1行输入一个整数n,表示单链表中数据元素的个数
第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) {


}