SHAOXIAOJ正在加载中...

1638: 线性表-删除第i个元素(链式存储)

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

题目描述

删除单链表中第i个位置上的数据元素(假设1<=i<=线性表的长度)

输入格式

第1行输入一个整数n,表示单链表的长度

第2行输入n个整数,表示单链表中存储的数据元素(用头插法建立单链表)

第3行输入一个一个整数i,表示删除单链表第i个位置上的数据元素

输出格式

输出删除单链表第i个位置上的数据元素之后得到的线性表中的所有元素

输入样例    复制

4
1 2 3 4
3

输出样例    复制

4 3 1

提示

#include <stdio.h>
#include <stdlib.h>

typedef int ElemType;

typedef struct Node {
	ElemType data;
	struct Node *next;
} LNode,*linkList;

void initList(linkList &L);
void inputList(linkList L);
void deleteList(linkList L,int i);
void printList(linkList L);

int main(void) {
	int i;
	linkList head;
	initList(head);
	inputList(head);
	scanf("%d",&i);
	deleteList(head,i);
	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 deleteList(linkList L,int i) {


}