珠海市网络营销协会的官方网站,图片常采用gif或jpeg格式,万能浏览器破解版,前端网页制作给定一个单链表#xff0c;请编写程序将链表元素进行分类排列#xff0c;使得所有负值元素都排在非负值元素的前面#xff0c;而 [0, K] 区间内的元素都排在大于 K 的元素前面。但每一类内部元素的顺序是不能改变的。例如#xff1a;给定链表为 18→7→-4→0→5→-6→10→1… 给定一个单链表请编写程序将链表元素进行分类排列使得所有负值元素都排在非负值元素的前面而 [0, K] 区间内的元素都排在大于 K 的元素前面。但每一类内部元素的顺序是不能改变的。例如给定链表为 18→7→-4→0→5→-6→10→11→-2K 为 10则输出应该为 -4→-6→-2→7→0→5→10→18→11。 输入格式 每个输入包含一个测试用例。每个测试用例第 1 行给出第 1 个结点的地址结点总个数即正整数N (≤105)以及正整数K (≤103)。结点的地址是 5 位非负整数NULL 地址用 −1 表示。 接下来有 N 行每行格式为 Address Data Next其中 Address 是结点地址Data 是该结点保存的数据为 [−105,105] 区间内的整数Next 是下一结点的地址。题目保证给出的链表不为空。 输出格式 对每个测试用例按链表从头到尾的顺序输出重排后的结果链表其上每个结点占一行格式与输入相同。 输入样例 00100 9 10
23333 10 27777
00000 0 99999
00100 18 12309
68237 -6 23333
33218 -4 00000
48652 -2 -1
99999 5 68237
27777 11 48652
12309 7 33218输出样例 33218 -4 68237
68237 -6 48652
48652 -2 12309
12309 7 00000
00000 0 99999
99999 5 23333
23333 10 00100
00100 18 27777
27777 11 -1作者: CHEN, Yue 单位: 浙江大学 时间限制: 400 ms 内存限制: 64 MB 代码长度限制: 16 KB #includeiostream
#includealgorithm
using namespace std;
const int maxn 1000010;struct Node{int address,data,next;int flag;int count;
}node[maxn];bool cmp(Node a,Node b){if(a.flag ! b.flag) return a.flag b.flag;else return a.count b.count;
}int main(){for(int i 0; i maxn; i){node[i].flag maxn;node[i].count maxn;}int begin,n,k;scanf(%05d%d%d,begin,n,k);int address; for(int i 0; i n; i){scanf(%d,address);scanf(%d%d,node[address].data,node[address].next);node[address].address address;}int p begin,cnt 0;while(p ! -1){node[p].count cnt;if(node[p].data 0) node[p].flag -1;else if(node[p].data k) node[p].flag 15;else node[p].flag 10;p node[p].next;}sort(node,nodemaxn,cmp);if(cnt 0) printf(-1);else{ for(int i 0; i cnt; i){printf(%05d %d,node[i].address,node[i].data);if(i cnt - 1) printf( %05d\n,node[i1].address);else printf( -1);}
}return 0;
} 转载于:https://www.cnblogs.com/wanghao-boke/p/10421148.html