oj2986删除指定区间内的数据(链表操作)
来源:互联网 发布:dna怎么入公安数据库 编辑:程序博客网 时间:2024/06/15 09:49
问题描述:删除指定区间内的数据(链表操作)
作者:何知令
![]()
作者:何知令
完成时间:2017年4月25日
代码:
/*问题描述:删除指定区间内的数据(链表操作)作者:何知令完成时间:2017年4月25日*/#include <stdio.h>#include <stdlib.h>int a[10000];typedef int ElemType;typedef struct LNode//单链表结构体{ ElemType data; struct LNode *next;} LinkList;void IinitList(LinkList *L)//创建单链表的表头{ L->next=NULL;}void InitList(LinkList *L){ L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL;}void CreateList(LinkList *L,ElemType a[],int n)//初始化单链表{ LinkList *s,*r; int i; r=L; for(i=0; i<n; i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i]; r->next=s; r=s; } r->next=NULL;}void DispList(LinkList *L)//遍历单链表,输出其上每一个元素{ LinkList *p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; }}int DeleteList(LinkList *L,int min,int max)//删除相同元素{ LinkList *q=L,*p;//p和q均指向第一节点 while(q!=NULL&&q->next!=NULL) { if(q->next->data>=min&&q->next->data<=max)//q指向的当前节点数据与p指向的当前节点数据相同时执行删除操作 { p=q->next;//设置一指针指向该位置 q->next=q->next->next;//指针转移 free(p);//删除操作 } else q=q->next; } return 1;}int main(){ int i; int n; int min,max; LinkList L; scanf("%d",&n); for(i=0; i<n; i++) scanf("%d",&a[i]); scanf("%d %d",&min,&max); IinitList(&L); CreateList(&L,a,n); if(DeleteList(&L,min,max)) DispList(&L); return 0;}程序运行结果展示:
知识点总结:数据结构
学习心得:这个题没按要求去做,C++还是与C有一定差距
0 0
- oj2986删除指定区间内的数据(链表操作)
- YTU 2986: 删除区间内的元素(线性表)
- Problem A: 删除区间内的元素(线性表)
- Problem A: 删除区间内的元素(线性表)
- 删除区间内的元素(线性表)
- 打印指定区间内的回文质数
- 第三周项目4(1)-顺序表应用 删除区间【x,y】内的元素
- 第三周项目4(1)-顺序表应用 删除区间【x,y】内的元素
- 数据结构—Problem B: 删除区间内的元素(线性表)
- 数据结构:单链表(二)之链表节点排序,升序插入数据,删除指定的所有节点,翻转链表操作
- 链表指定区间元素的反转
- 算法<翻转链表的指定区间>
- 删除表内重复的数据
- 删除表内的重复数据
- 删除表内多余的重复数据
- vector erase 重复删除容器内的指定内容时,使用迭代器(iterator)++的操作应该放到For循环内
- 删除指定日期内的文件
- 查询指定日期区间内的每一天
- 数组中的重排序方法原理分析
- DSSD : Deconvolutional Single Shot Detector
- 最全的Activity生命周期
- 两个例子学习MySQL
- P2P小爬虫范例
- oj2986删除指定区间内的数据(链表操作)
- 解压缩根文件系统
- Activity跳转(装备选择案例)
- 如何过滤MAP中的特殊字符
- 前向分布算法
- nyoj 1238 最少换乘(spfa)
- HBase的配置
- codeforces 673C
- HAUTOJ 1265