953: 单链表的删除操作的实现
题目描述
建立长度为n的单链表,删除第i个结点之前的结点。
输入
第一行为自然数n,表示链式线性表的长度;
第二行为n个自然数表示链式线性表各元素值;
第三行为指定的删除参数i。
输出
指定删除位置合法时候,输出删除元素后的链式线性表的所有元素,元素之间用一个空格隔开。
输入不合法,输出"error!"。
样例输入
5
1 2 3 4 5
3
样例输出
1 3 4 5
#include<stdio.h>
#include<malloc.h>
#define MaxSize 1000
struct LinkNode
{int data;LinkNode *next;
}*L;
void Create(LinkNode*&L,int a[],int n)//尾插法,教材48页
{LinkNode*s,*r;L=(LinkNode*)malloc(sizeof(LinkNode));r=L;for(int i=0;i<n;i++){s=(LinkNode*)malloc(sizeof(LinkNode));s->data=a[i];r->next=s;r=s;}r->next=NULL;
}
void Delete(LinkNode*&L,int a[],int item)
{item=item-1;//逻辑位置便为实际位置item=item-1//实际位置之前的位置LinkNode*pre=L,*p=L->next;int i=0;while(i<item){pre=p;//pre是前驱p=pre->next;//p为要删除的结点i++;}pre->next=p->next;//从前驱跳过p结点,连接上p结点的下一个结点free(p);//删除p结点
}
int main()
{int n,item,a[MaxSize];scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}scanf("%d",&item);if(item<=1||item>n+1){printf("error!");return 0;}LinkNode*L;Create(L,a,n);Delete(L,a,item);L=L->next;while(L!=NULL){printf("%d ",L->data);L=L->next;}
}
953: 单链表的删除操作的实现相关推荐
- SWUSTOJ #953 单链表的删除操作的实现
SWUSTOJ #953 单链表的删除操作的实现 题目 输入 输出 样例输入 样例输出 源代码 题目 建立长度为 n 的单链表,删除第 i 个结点之前的结点. 输入 第一行为自然数 n,表示链式线性表 ...
- SWUST OJ 953: 单链表的删除操作的实现
建立长度为n的单链表,删除第i个结点之前的结点. 第一行为自然数n,表示链式线表的长度: 第二行为n个自然数表示链式线性表各元素值: 第三行为指定的删除参数i. #include <stdio. ...
- 西南科技大学OJ题 单链表的删除操作的实现0953
单链表的删除操作的实现 1000(ms) 65535(kb) 2896 / 13622 建立长度为n的单链表,删除第i个结点之前的结点. 输入 第一行为自然数n,表示链式线性表的长度: 第二行为n个自 ...
- 数据结构(单链表的相关操作)
为什么80%的码农都做不了架构师?>>> #include <stdio.h> #include <stdlib.h> #define ElemType ...
- c语言删除链表中特定元素,单链表的删除某个元素的操作
昨天我们谈了关于单链表的插入操作,今天我们就来看看与插入操作对应的删除操作. 前面了解了链表的插入,现在删除就简单了,因为是个反过程嘛.还是画个图容易理解一些. 单链表删除第i个数据结点的算法思路: ...
- 从无头单链表中删除节点 结构之法 4
题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个节点),请将该节点从单链表中删除. 分析与解答: 假设给定的指针为pCurrent,Node *pN ...
- 《大话数据结构》第3章 线性表 3.8.2 单链表的删除
3.8.2 单链表的删除 现在我们再来看单链表的删除.设存储元素ai的结点为q,要实现将结点q删除单链表的操作,其实就是将它的前继结点的指针绕过,指向它的后继结点即可(如图3-8-5所 ...
- java 结构体_Java实现单链表的简单操作
文章目录 前言 一.基本实现思路 二.代码实现 1.定义结点类2.定义链表类3.测试调用4.结果 总结 前言 用Java实现单链表的简单操作,阅读本文和上一篇文章体会Java中类与C++中结构体指针的 ...
- 单链表的实现操作(C语言)
//单链表的实现操作 #include <stdio.h> #include <malloc.h> #include <stdlib.h> //数据类型定义 typ ...
最新文章
- GIT上传服务器同步到web目录
- python绘制随机数直方图-python plotly绘制直方图实例详解
- 一拍即合、一见钟情之后,智慧城市的“福利”来啦……
- linux安装zsh终端
- Python - 遍历列表时删除元素的正确做法
- 文件/目录权限设置命令:chmod
- 银行恒温恒湿监控系统解决方案
- 通过拦截器获取控制类requestMapping注解中的属性值
- PHP连接MongoDB
- 五步完成Spring整合Mybatis的完整示例
- 教你玩转CSDN博客
- 【Python】QQ大家来找茬辅助
- 阿里云设置密钥对登录服务器
- 互联网大厂技术岗实习/求职经验分享(实习内推+简历+面试+offer)
- 笔记本电脑同时连接有线网络和无线网络时,如何判断实际连接的网络
- CFS调度器负载计算
- x264码率失真优化曲线的实现
- 接收用户输入的用户名和密码,若用户名为 “admin” ,密码为 “123456” ,则提示用户登录成功,否则,让用户一直输入。
- Python 学习笔记 列表 range() xxx XXX
- 谷歌地图地址地址自动完成框
热门文章
- 如何编写无法维护的代码(现实中有的程序员就是这么干的)
- 0.HDFS分布式文件系统
- 读《系统工程:21世纪的系统方法论》
- 制作bat文件的方法
- golang微服务框架go-zero系列-1:适合创业的golang微服务框架go-zero + 金光灿灿的gorm V2实践
- python+java停车场车位管理系统vue+elementui
- 还在用机械式的继电器?要不试下这款光电固态继电器?
- 系统引导管理 之 用GRUB(包括WINGRUB)命令行模式引导安装Linux
- 通俗理解决策树算法中的信息增益(最朴实的大白话,保准能看懂)
- mysql to_base64自动换行_BASE64 官方方法,我自己用的,注意记住换行问题。