1638: 线性表-删除第i个元素(链式存储)
金币值:2
定数:9
时间限制:1.000 s
内存限制:128 M
解决:34
提交:65
正确率:52.31% 命题人:
题目描述
删除单链表中第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) {
}