单链表的插入操作的实现(0952)SUWST-OJ
Description
建立长度为n的单链表,在第i个结点之前插入数据元素data。
Input
第一行为自然数n,表示链式线性表的长度;第二行为n个自然数表示链式线性表各元素值;第三行为指定插入的位置i;第四行为待插入数据元素data。
Output
指定插入位置合法时候,输出插入元素后的链式线性表的所有元素,元素之间用一个空格隔开。输入不合法,输出“error!”。
#include<stdio.h>
#include<stdlib.h>
int total;
typedef struct node
{
int data;
struct node * next;
}Node;
void Create(Node*&L,int a[],int n)//尾插法
{
Node *s,*r;
int i;
L=(Node*)malloc(sizeof(struct node));
r=L;
for(i=0;i<n;i++)
{
s=(Node*)malloc(sizeof(struct node));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void input(Node*&L)//输入函数
{
int a[1000];
int i;
scanf("%d",&total);
for(i=0;i<total;i++)
{
scanf("%d",&a[i]);
}
Create(L,a,total);
}
bool Add(Node*L,int i,int e)//判断以及寻找要插入的位置
{
if(i>total)
{
return false;
}
int j=0;
Node *p,*q;
p=L;
while(j<i-1&&p)
{
j++;
p=p->next;
}
if(p==NULL)
return false;
else
{
q=(Node*)malloc(sizeof(struct node));
q->data=e;
q->next=p->next;
p->next=q;
return true;
}
}
void output(Node*L)//输出函数
{
Node *read;
read=L->next;
while(read->next)
{
printf("%d ",read->data);
read=read->next;
}
printf("%d",read->data);
}
int main()
{
int i;
Node*L;
input(L);
scanf("%d",&i);
int e;
scanf("%d",&e);
if(Add(L,i,e))
{
output(L);
}
else
printf("error!");
return 0;
}
转载于:https://www.cnblogs.com/FENGXUUEILIN/p/4397942.html
单链表的插入操作的实现(0952)SUWST-OJ相关推荐
- 单链表的插入操作(全)
1 在指定位序插入数据 第一步 主要执行操作:查找 先查找所要插入位置的前一个元素 具体方法:根据链表的特点-每一个节点都需要一个数据域和指针域 所以只需从头节点遍历到所要插入数据的的前一个 ...
- 西南科技大学 swust oj #952: 单链表的插入操作的实现
题目描述 建立长度为n的单链表,在第i个结点之前插入数据元素data. 输入 第一行为自然数n,表示链式线性表的长度: 第二行为n个自然数表示链式线性表各元素值: 第三行为指定插入的位置i:第四行为待 ...
- 顺序表和单链表的插入删除操作时间复杂度的区别
顺序表和单链表的插入删除操作时间复杂度的区别 最近在学习数据结构,看到如果需要用到大量的插入和删除操作,单链表的效率会高于顺序表.看到这里时内有有个疑惑,这两种数据结构的插入和删除操作的时间复杂度不都 ...
- 【 C 】在单链表中插入一个新节点的尝试(二)
在上篇博文中:[ C ]在单链表中插入一个新节点的尝试(一),我们最后提到了如果向单链表的开头(起始位置)插入一个节点,上篇博文中给出的程序显然完成不了这任务. 这篇博文中,我们将解决这个问题,给出一 ...
- 【 C 】在单链表中插入一个新节点的尝试(一)
根据<C和指针>中讲解链表的知识,记录最终写一个在单链表中插入一个新节点的函数的过程,这个分析过程十分的有趣,准备了两篇博文,用于记录这个过程. 链表是以结构体和指针为基础的,所以结构体和 ...
- java 结构体_Java实现单链表的简单操作
文章目录 前言 一.基本实现思路 二.代码实现 1.定义结点类2.定义链表类3.测试调用4.结果 总结 前言 用Java实现单链表的简单操作,阅读本文和上一篇文章体会Java中类与C++中结构体指针的 ...
- 数据结构(单链表的相关操作)
为什么80%的码农都做不了架构师?>>> #include <stdio.h> #include <stdlib.h> #define ElemType ...
- 单链表的实现操作(C语言)
//单链表的实现操作 #include <stdio.h> #include <malloc.h> #include <stdlib.h> //数据类型定义 typ ...
- 单链表的简单操作与演示
单链表的简单操作与演示 单链表 单链表概念和简单的设计 单链表是一种链式存取的数据结构,链表中的数据是以结点来表示的,每个结点由元素和指针构成. 元素表示数据元素的映象,就是存储数据的存储单元:指针指 ...
最新文章
- 关于MySQLdb连接数据的使用(插入数据——使用前端页面的方式进行可视化)
- 网页显示UIWebView(一个)
- github上星星1万多的python教程推荐收藏
- html如何调整背景图片大小_如何快速调整证件照背景色和大小!(简单快速)...
- Windows 8 系统快捷键热键列表收集
- POJ 2054 Color a Tree
- NET的JIRA活动时间线REST API
- linux dd后无法启动盘,dd后新盘系统无法启动,解决(上)
- 广东电网公司大数据平台初步建成
- 基于php网上零食商店管理系统获取(php毕业设计)
- python学习笔记|SQLite数据库基本知识
- 免费下载380套大型商业源码
- excel表格的边框线怎么去除html,在EXCEL中如何去掉表头的边框线
- 获取中文拼音或拼音首字母方法
- 详解Docker的网络模式之host模式(host网络模式)
- 中国第一批程序员的“青春饭”已经恰完了,35+的程序员该何去何从?
- mac mysql 移动硬盘_Mac下无法推出硬盘
- 基于JavaGUI的火锅自助点菜客户端和服务端系统
- 软件工程导论第六版 第五章 总体设计知识点总结
- html5视频作为页面背景