PTA 1075 链表元素分类 (c++)
2019-08-18 08:25
861 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44622401/article/details/99700981
1075 链表元素分类 (25 分)
思路:首先建立一个结构体包含数据和下个地址,还有大小为3得vector数组。然后建立一个结构体数组,下标即为当前结点得地址。这样其实就可以用结构体数组来模拟链表进行一系列操作。然后定义一个变量并赋给它首地址,开始遍历到当它不等于-1(即不是链表尾),然后对每一次循环时得存储得数据进行判断 分为data<0 k>data>0和data>k 三个部分分别存储到v[0]
v[1] v[2]当中(个人学艺不精,参考得柳神得代码,没想到vector还有这种操作。。。。。)代码如下:
">#include<vector> using namespace std; struct node{ int data,next; }list[100000]; vector<int>v[3]; int main() { int start,n,k,a; cin>>start>>n>>k; for(int i=0;i<n;i++) { cin>>a; cin>>list[a].data>>list[a].next; } int p=start; while(p!=-1) { int data=list[p].data; if(data<0) v[0].push_back(p); else if(data>=0&&data<=k) v[1].push_back(p); else v[2].push_back(p); p=list[p].next; } int flag=0; for(int i=0;i<3;i++) for(int j=0;j<v[i].size();j++) if(!flag) { printf("%05d %d ",v[i][j],list[v[i][j]].data); flag=1; } else printf("%05d\n%05d %d ",v[i][j],v[i][j],list[v[i][j]].data); printf("-1"); }
相关文章推荐
- 1075. 链表元素分类(25)(C++)
- PAT 1075. 链表元素分类
- 1075. 链表元素分类
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- PAT乙级1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075.链表元素分类(25)
- PAT (Basic Level) Practise (中文)1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25) PAT乙级真题
- 1075. 链表元素分类(25)
- 1075. 链表元素分类(25)
- 1075 链表元素分类 PAT(B) C语言