标签:return pt 队列 约瑟夫 int myq 循环 15 ph
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e5+5; 4 /*int ph,pt;//head tail; 5 int myq[20];//ph==pt队列为空; 6 //当进行了pop操作Ph会前移,造成空间浪费,可以采用循坏队列优化; 7 8 int myq_push(int x) 9 { 10 if(pt==15)pt=0; 11 if(pt!=ph)myq[pt++]=x; 12 else return 0; 13 return 1; 14 } 15 int myq_pop() 16 { 17 if(ph==15)ph=0; 18 if(ph!=pt)ph++; 19 else return 0; 20 return 1; 21 } 22 int main() 23 { 24 //for(int i=0;i<10;i++)myq_push(i); 25 return 0; 26 }*/ 27 /* 28 int q1[1005],q2[1005],q1h=0,q2h=0; 29 30 int main() 31 { 32 int m,n,k; 33 cin>>m>>n; 34 cin>>k; 35 int t1=m,t2=n; 36 for(int i=0;i<m;i++)q1[i]=i; 37 for(int i=0;i<n;i++)q2[i]=i; 38 while(k) 39 { 40 printf("%d %d\n",q1[q1h],q2[q2h]); 41 q1[t1++]=q1[q1h++]; 42 q2[t2++]=q2[q2h++]; 43 k--; 44 } 45 46 return 0; 47 } 48 */ 49 //约瑟夫环 50 const int n=10,m=4; 51 int a[n+1],j=n,k=1,p=0; 52 int main() 53 { 54 for(int i=1;i<n;i++)a[i]=i+1;//从1开始计数 55 a[n]=1; 56 while(p<n)//要有n个人出队 57 { 58 while(k<m) 59 { 60 j=a[j];//pre指针 61 k++; 62 } 63 //此时k=m指向第m个节点,j指向第m个节点的前节点 64 //a[i]表示i的next节点; 65 printf("%d ",a[j]); 66 a[j]=a[a[j]]; 67 k=1; 68 p++; 69 } 70 return 0; 71 }
标签:return,pt,队列,约瑟夫,int,myq,循环,15,ph
来源: https://www.cnblogs.com/matt-su/p/15668404.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。