师--链表的结点插入
Problem Description
Input
Output
Example Input
4 1 1 1 2 0 3 100 4
Example Output
3 1 2 4
#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node *next;
};
struct node *create(int n)
{
struct node *head,*p,*tail,*q;
int i,x,len,j;
head=(struct node*)malloc(sizeof(struct node));
head->next=NULL;
tail=head;
len=0;
for(i=0;i<n;i++)
{
p=(struct node*)malloc(sizeof(struct node));
scanf("%d %d",&x,&p->data);
p->next=NULL;
if(x>=len)
{
tail->next=p;
tail=p;
len++;
}
else if(x==0)
{
p->next=head->next;
head->next=p;
len++;
}
else if(x>0&&x<len)
{
q=head;
for(j=0;j<x;j++)
{
q=q->next;
}
p->next=q->next;
q->next=p;
len++;
}
}
return (head);
};
void print(struct node *h)
{
struct node *p=h->next;
while(p!=NULL)
{
if(p->next==NULL)
printf("%d",p->data);
else
printf("%d ",p->data);
p=p->next;
}
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
struct node *p;
p=create(n);
print(p);
printf("\n");
}
return 0;
}
师--链表的结点插入相关推荐
- C - 师--链表的结点插入
Description 给出一个只有头指针的链表和 n 次操作,每次操作为在链表的第 m 个元素后面插入一个新元素x.若m 大于链表的元素总数则将x放在链表的最后. Input 多组输入.每组数据首先 ...
- 链表之链表的结点插入
师–链表的结点插入 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 给出一个只有头指针 ...
- 建立一个按年龄排序的有序链表,每个结点包括学号、姓名、性别、年龄。建立一个新的结点,通过年龄将此结点插入到链表中去,使之仍然有序
<程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p143 7.1.2 上级实训内容 [实训内容12]建立一个按年龄排序的有序链表,每个结点包括学号.姓名 ...
- Linux内核链表交换节点,[笔记]Linux内核链表:结点的插入、删除以及链表的遍历...
Linux内核链表:结点的插入.删除以及链表的遍历 1. Linux内核链表的核心思想是:在用户自定义的结构A中声明list_head类型的成员p,这样每个结构类型为A的变量a中,都拥有同样的成员p, ...
- 单链表的基本操作-插入结点、删除结点、新建链表、查找结点位置
** C语言新手小白的学习笔记-------------目前持续更新中 ** 本人90后电气工程及其自动化大学生,大二开始接触C语言,写过前端,Python,但是都不精通,通过许多认识后明白了自身的许 ...
- Java 链表结点插入
PS:链表是一种数据结构,而数据结构就是一种存放数据的方式. 为什么需要链表? 我们知道,数组也可以存储数据,那么为什么还需要链表呢?接下来,我们来看看数组 和链表的区别: 1.数组就像身上编了号站成 ...
- 链表头结点的插入和删除
看了不少博客,大都讲的比较详细到关于链表节点的删除和插入,但因为没找到相关的头结点插入和删除的博客,所以打算自己写一下方便大家查阅 下面是已经给出的链表的抽象数据结构:然后 然后下面是定义的插入结点的 ...
- 已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值x为的结点插入到表L中,使L仍然有序。
创建链表,main函数中通过while循环找出该插入的位置,插入.应注意L头节点位置的变化,利用一个ptr来记录L的头节点. /*已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值 ...
- 写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点
/*实验2 1. 写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点 (low和high的值是多少可自由设计).并且要在程序中验证其功能实现. (可在实验1的第3题的基 ...
最新文章
- “偷懒”上热搜!南京大三学生自制宿舍关灯神器火了,网友:希望量产
- Vector的使用方法和自我理解
- 多agv系统调度的MATLAB仿真
- java提高篇(十二)-----代码块
- 如何用笔记本建立wifi热点
- gradle镜像配置:使用阿里云仓库服务的代理仓库地址代替jcenter()、mavenCentral()及google()
- 【线上分享】移动音视频SDK工程实践之数据采集和处理
- 设计模式---5(建造者模式的概念及其实现,建造者模式的角色与职责,建造者模式和工厂模式的区别)
- 水塔清洗机器人_最全的中央空调清洗流程
- How To Install IonCube Loader
- 【Http】Apache HttpClient 4.5实现https
- 如何将多个excel表格合并成一个_如何将一个视频分割成多个片段
- selenium 定位方式5
- mock介绍及moco框架搭建使用
- Java基础总结--1
- atitit.词法分析原理 词法分析器 (Lexer)
- 华为去年AI研发投入15亿美元,人才年薪平均30万美元
- 01. Perl 简介
- 【技术贴】ppt2003更换图片|更换带有动作特效的图片|替换ppt图片
- android系统(148)---android 8.1关机闹钟
热门文章
- shell判定一个变量等于-n_Shell test命令:条件判断,检查某条件是否成立
- 红黑树和平衡二叉树的区别_一文搞懂红黑树
- full outer join 与full join的区别_sleep、yield、join都是干啥的? sleep与wait有啥区别?中篇[十五]...
- js和python哪个好_Python与Node.JS:哪一个比较适合您的项目?
- python 局域网主机扫描_python扫描局域网主机名
- easyexcel导出百万级数据_百万级别数据Excel导出优化
- 典型相关分析_2020-2025年中国海水淡化行业发展前景与投资预测分析报告
- 【LeetCode笔记】347. 前K个高频元素(Java、优先队列、小顶堆、HashMap)
- 宝塔linux忘记密码,宝塔忘记登录入口了怎么解决 宝塔面板密码忘记了怎么办
- linux lvm lv扩充--虚拟机,虚拟机新增磁盘后lvm下的lv扩容