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