SDUT_OJ_1464-链表-删除指定元素
2015-01-23 21:30
337 查看
题目描述
对于一个给定的线性表,要求删除线性表内的大于等于 min 且小于等于 max 的数,并输出删除后的线性表要求:必须使用链表做,否则不计成绩!
输入
输入的第一行为一个正整数 T,表示有 T 组测试数据。每组测试数据的第一行为三个整数n、min、max,表示有 n 个数据,删除的范围为[min, max].第二行为 n 个整数代表初始的 n 个数据。
输出
输出删除数据后的线性表,如果线性表为空则输出-1示例输入
2 3 1 2 1 2 3 5 2 1 1 1 1 1 1
示例输出
3 1 1 1 1 1
代码
#include <iostream> #include <stdlib.h> using namespace std; struct node { int data; struct node* next; }; int a[10000]; int main() { ios::sync_with_stdio(false); int t,n,min,max,i; struct node*p,*head,*q,*tail; cin>>t; while(t--) { head=(struct node*)malloc(sizeof(struct node)); head->next=NULL; tail=head; cin>>n>>min>>max; for(i=0; i<n; i++) { p=(struct node*)malloc(sizeof(struct node)); cin>>p->data; p->next=NULL; tail->next=p; tail=p; } p=head; while(p->next!=NULL) { if(p->next->data>=min&&p->next->data<=max) { q=p->next; p->next=q->next; free(q); } else p=p->next; } p=head->next; if(p==NULL) cout<<-1<<endl; else { while(p!=NULL) { cout<<p->data; p=p->next; if(p!=NULL) cout<<' '; else cout<<endl; } } } return 0; }
相关文章推荐
- 链表-删除指定元素 SDUT 1464
- 数据结构实验之链表七:单链表中重复元素的删除 (SDUT 2122)
- [2178]链表的有序集合 (链表的插排法+重复元素的删除) SDUT
- lintcode:删除链表中指定元素
- 从单向链表中删除指定值的节点(OJ 不用看这题)
- 【华为OJ】【093-从单向链表中删除指定值的节点】
- STL链表之删除指定元素(list)
- 在双向链表中删除指定元素
- 华为OJ——从单向链表中删除指定值的节点
- 删除链表中指定元素
- 链表——删除指定元素
- 山东理工OJ【2122】数据结构实验之链表七:单链表中重复元素的删除(两种思想)
- 华为OJ:从单向链表中删除指定值的节点
- 数据结构之 线性表---单链表操作A (删除链表中的指定元素)
- 山东理工OJ 2122 数据结构实验之链表七:单链表中重复元素的删除
- sdut.acm 2012级《程序设计基础Ⅱ)》_链表 数据结构实验之链表七:单链表中重复元素的删除
- 【1130】数据结构上机测试1:顺序表的应用 (链表的建立于重复元素删除) SDUT
- SDUT 2122 数据结构实验之链表七:单链表中重复元素的删除
- Remove Linked List Elements 删除链表中指定元素
- 删除链表中和某一个数相同的元素(单向链表)哈理工oj1546