Description

建立长度为n的单链表,在第i个结点之前插入数据元素data。

Input

第一行为自然数n,表示链式线性表的长度;第二行为n个自然数表示链式线性表各元素值;第三行为指定插入的位置i;第四行为待插入数据元素data。

Output

指定插入位置合法时候,输出插入元素后的链式线性表的所有元素,元素之间用一个空格隔开。输入不合法,输出“error!”。

Sample Input
5
1 2 3 4 5
3
6
Sample output
1 2 6 3 4 5
代码:

#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. 单链表的插入操作(全)

    1 在指定位序插入数据 第一步   主要执行操作:查找  先查找所要插入位置的前一个元素  具体方法:根据链表的特点-每一个节点都需要一个数据域和指针域  所以只需从头节点遍历到所要插入数据的的前一个 ...

  2. 西南科技大学 swust oj #952: 单链表的插入操作的实现

    题目描述 建立长度为n的单链表,在第i个结点之前插入数据元素data. 输入 第一行为自然数n,表示链式线性表的长度: 第二行为n个自然数表示链式线性表各元素值: 第三行为指定插入的位置i:第四行为待 ...

  3. 顺序表和单链表的插入删除操作时间复杂度的区别

    顺序表和单链表的插入删除操作时间复杂度的区别 最近在学习数据结构,看到如果需要用到大量的插入和删除操作,单链表的效率会高于顺序表.看到这里时内有有个疑惑,这两种数据结构的插入和删除操作的时间复杂度不都 ...

  4. 【 C 】在单链表中插入一个新节点的尝试(二)

    在上篇博文中:[ C ]在单链表中插入一个新节点的尝试(一),我们最后提到了如果向单链表的开头(起始位置)插入一个节点,上篇博文中给出的程序显然完成不了这任务. 这篇博文中,我们将解决这个问题,给出一 ...

  5. 【 C 】在单链表中插入一个新节点的尝试(一)

    根据<C和指针>中讲解链表的知识,记录最终写一个在单链表中插入一个新节点的函数的过程,这个分析过程十分的有趣,准备了两篇博文,用于记录这个过程. 链表是以结构体和指针为基础的,所以结构体和 ...

  6. java 结构体_Java实现单链表的简单操作

    文章目录 前言 一.基本实现思路 二.代码实现 1.定义结点类2.定义链表类3.测试调用4.结果 总结 前言 用Java实现单链表的简单操作,阅读本文和上一篇文章体会Java中类与C++中结构体指针的 ...

  7. 数据结构(单链表的相关操作)

    为什么80%的码农都做不了架构师?>>>    #include <stdio.h> #include <stdlib.h> #define ElemType ...

  8. 单链表的实现操作(C语言)

    //单链表的实现操作 #include <stdio.h> #include <malloc.h> #include <stdlib.h> //数据类型定义 typ ...

  9. 单链表的简单操作与演示

    单链表的简单操作与演示 单链表 单链表概念和简单的设计 单链表是一种链式存取的数据结构,链表中的数据是以结点来表示的,每个结点由元素和指针构成. 元素表示数据元素的映象,就是存储数据的存储单元:指针指 ...

最新文章

  1. 关于MySQLdb连接数据的使用(插入数据——使用前端页面的方式进行可视化)
  2. 网页显示UIWebView(一个)
  3. github上星星1万多的python教程推荐收藏
  4. html如何调整背景图片大小_如何快速调整证件照背景色和大小!(简单快速)...
  5. Windows 8 系统快捷键热键列表收集
  6. POJ 2054 Color a Tree
  7. NET的JIRA活动时间线REST API
  8. linux dd后无法启动盘,dd后新盘系统无法启动,解决(上)
  9. 广东电网公司大数据平台初步建成
  10. 基于php网上零食商店管理系统获取(php毕业设计)
  11. python学习笔记|SQLite数据库基本知识
  12. 免费下载380套大型商业源码
  13. excel表格的边框线怎么去除html,在EXCEL中如何去掉表头的边框线
  14. 获取中文拼音或拼音首字母方法
  15. 详解Docker的网络模式之host模式(host网络模式)
  16. 中国第一批程序员的“青春饭”已经恰完了,35+的程序员该何去何从?
  17. mac mysql 移动硬盘_Mac下无法推出硬盘
  18. 基于JavaGUI的火锅自助点菜客户端和服务端系统
  19. 软件工程导论第六版 第五章 总体设计知识点总结
  20. html5视频作为页面背景

热门文章

  1. Java JDBC spring-jdbc
  2. 数据安全_个人信息查询
  3. ETL学习总结(1)——ETL 十大功能特性详解
  4. Java基础学习总结(108)——Java常见面试题再总结
  5. oracle 11g rman catalog,Oracle 11g RMAN复制数据库的测试
  6. plc的指针和c语言指针,关于STEP7 Pointer指针的问题
  7. Python之路(运算符)
  8. cocos2d-x3.0中数据类型vector,map、value
  9. python成长之路第三篇(2)_正则表达式
  10. Oracle单组函数