| ²é¿´: 352 | »Ø¸´: 2 | ||
±ùÓêhustÌú³æ (СÓÐÃûÆø)
|
[ÇóÖú]
C++Êý¾Ý½á¹¹Ñ»·Á´±íԼɪ·òÎÊÌâ
|
|
#include <iostream> using namespace std; template <class T> struct Node { T data; Node<T> *next; }; template <class T> class CLinkList { public: CLinkList(){rear=new Node<T>;rear->next=rear;} CLinkList(T a[],int n); int Josephus(int m,int n); private: Node <T> *rear; }; template <class T> CLinkList<T>::CLinkList(T a[],int n) { rear=new Node<T>; rear->next=rear; for (int i=0;i<n;i++) { Node <T>*s=new Node <T>; s->data = a; s->next = rear->next; rear->next = s; rear = s; } Node <T>*p = rear->next; rear->next = p->next; delete p; } template <class T> int CLinkList<T>::Josephus(int m,int n) { int x,i; Node <T>*p=rear->next; if (n==1||m==1) { x=n; } else { while(n!=1) { i=1; while (p&&i!=(m-1)) { p=p->next; i++; } Node <T> *q = p->next; p->next = q->next; delete q; p = p->next; n--; } rear=p; x=p->data; } return x; } int main() { int M,N,a[1024]; cout<<"the number of people:"; cin>>N; if (N>=1024) { cout<<"Error!Please put in a smaller number."; return 0; } cout<<"the number they count:"; cin>>M; if (M<=0) { cout<<"Error!Please put in a positive number:"; return 0; } for (int i=0;i<N;i++) { a = i+1; } CLinkList<int> A(a,N); cout<<"the last number is:"<<A.Josephus(M,N)<<endl; return 0; } ÎÒ²»ÖªµÀÔÚtemplate <class T> CLinkList<T>::CLinkList(T a[],int n)µÄ×îºóΪɶҪ¼ÓÉÏ£º Node <T>*p = rear->next; rear->next = p->next; delete p; ÕâÒ»¶Î´úÂ룬Çë¸ßÈËÖ¸µã£¬Ð»Ð»~~~ |
» ²ÂÄãϲ»¶
ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼±
ÒѾÓÐ8È˻ظ´
ÌåÖÆÄÚ³¤±²ËµÌåÖÆÄÚ¾ø´ó²¿·ÖÒ»±²×ÓÔڵײ㣬ÈçͬÄãÃÇÒ»Ñù´ó²¿·ÖÆÕͨ½ÌʦæÇÒÊÕÈëµÍ
ÒѾÓÐ13È˻ظ´
ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼±
ÒѾÓÐ8È˻ظ´
ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼±
ÒѾÓÐ8È˻ظ´
ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼±
ÒѾÓÐ11È˻ظ´
ΪʲôÖйú´óѧ¹¤¿Æ½ÌÊÚÃÇË®ÁËÄÇô¶àËùνµÄ¶¥»á¶¥¿¯£¬µ«»¹ÊÇ×ö²»³öÓîÊ÷»úÆ÷ÈË£¿
ÒѾÓÐ8È˻ظ´
ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼±
ÒѾÓÐ5È˻ظ´
ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼±
ÒѾÓÐ6È˻ظ´
ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼±
ÒѾÓÐ9È˻ظ´
ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼±
ÒѾÓÐ4È˻ظ´
libralibra
ÖÁ×ðľ³æ (ÖøÃûдÊÖ)
æôÆï½«¾ü
- ³ÌÐòÇ¿Ìû: 40
- Ó¦Öú: 817 (²©ºó)
- ½ð±Ò: 12914.1
- ºì»¨: 64
- Ìû×Ó: 2238
- ÔÚÏß: 287.3Сʱ
- ³æºÅ: 696514
- ×¢²á: 2009-02-05
- רҵ: ¼ÆËã»úÈí¼þ
¡¾´ð°¸¡¿Ó¦Öú»ØÌû
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
|
ÓÐ2¸öÎÊÌâ,CLinkList<T>::CLinkList(T a[],int n)ÖÐÕâÒ»¾ä ÉÙÁË[],Ó¦ÊÇa int main()ÀïÃæÒ²Ò»Ñù,a = i+1;Ó¦¸ÃÊÇa È»ºó¿´ÄãÎʵÄÄǶδúÂë: Éú³ÉÒ»¸öÑÆ½Úµã(Ò²¾ÍÊǶàÓàµÄ),ûÓÐÈκÎÊý¾Ý,ÓÃÀ´±íʾÁ´±í½áβ.ÆänextÖ¸Ïò×ÔÉí(Ìí¼ÓÊý¾Ýºó»á±»É¾³ý). Ñ»·Ìí¼ÓÊý¾Ý,Ìí¼Ó˳ÐòΪ:Éú³Éнڵãs,¸øsÊý¾Ý¸³Öµ,sÖ¸ÏònextÑÆ½Úµãrear,ÑÆ½ÚµãnextÖ¸Ïòs,È»ºóÒÆ¶¯rearÖ¸Õ뵽нڵãs(ÕâʱºòËùνµÄrearÆäʵ±ä³ÉÁË×îºóÒ»¸ö·Ç¿Õ½áµã),»Í¼¾ÍÊÇ: Ìí¼ÓǰֻÓÐrear: [rear][null][next] ¡ü___________| Ìí¼Óºó(Ö»¼ÓÒ»¸ö),ÓÐ2¸öÔªËØ,s1ºÍrear: [s1(Ñ»·×îºóÒ»¾ä¸³Öµºó±ä³Érear)][data][next] ----¡ú [Ôrear(¸´ÖƺóûÓÐÖ¸ÕëÖ¸ÏòÕâÀï,Ö»ÄÜͨ¹ýеÄrearµÄnext·ÃÎÊ)][null][next] ¡ü_______________________________________________________________________________________________________| Ìí¼Ó2¸öºó±ä³És1ºÍs2ºÍrear [s1][data][next] ---¡ú [s2(еÄrear)][data][next] ---¡ú [Ôrear][null][next] ¡ü___________________________________________________________| Ñ»·ÏÂÈ¥¿ÉÒÔ¿´µ½,rearÓÀÔ¶Ö¸Ïò×îºóÒ»¸ö·Ç¿Õ½Úµã,Ò²¾ÍÊÇÐÂÌí¼ÓµÄÄǸös. ´´½¨Ò»¸öÖ¸Õë,Ö¸Ïò¿Õ½Úµã(rearµÄÏÂÒ»¸ö),ÈÃ×îºóÒ»¸ö·Ç¿Õ½ÚµãÖ¸ÏòÍ·½áµã.ɾ³ý¿Õ½Úµã.Ñ»·Á´±íÉú³ÉÍê³É. |

2Â¥2013-06-17 16:41:00
libralibra
ÖÁ×ðľ³æ (ÖøÃûдÊÖ)
æôÆï½«¾ü
- ³ÌÐòÇ¿Ìû: 40
- Ó¦Öú: 817 (²©ºó)
- ½ð±Ò: 12914.1
- ºì»¨: 64
- Ìû×Ó: 2238
- ÔÚÏß: 287.3Сʱ
- ³æºÅ: 696514
- ×¢²á: 2009-02-05
- רҵ: ¼ÆËã»úÈí¼þ

3Â¥2013-06-17 16:42:26













»Ø¸´´ËÂ¥