如题:
代码如下:
1 #include <iostream> 2 #include <string> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 struct Node 7 { 8 int v; 9 Node *next; 10 }; 11 Node* create_lian(int n) 12 { 13 Node *a=new Node,*b; 14 b=a; 15 cin>>a->v; 16 a->next=a; 17 for(int i=2;i<=n;i++) 18 { 19 a->next=new Node; 20 a=a->next; 21 cin>>a->v; 22 a->next=b; 23 } 24 cout<<"Node created."<<endl; 25 return b; 26 } 27 //从头开始,反复输出链表内容,输出n个 28 void out_lian(Node *p,int n) 29 { 30 int c=0; 31 do 32 { 33 c++; 34 cout<<p->v<<endl; 35 p=p->next; 36 } 37 while(c<n); 38 } 39 main() 40 { 41 int n,x,y; 42 Node *a,*b=new Node,*pre,*head; 43 cin>>n; 44 head=create_lian(n); 45 out_lian(head,10); 46 }
学会以后,试着用循环列表解决这个问题:
有10个兔子洞,大灰狼第一次看1号洞,第二次看3号洞,第三次看6号洞……每次多隔一个。如果大灰狼一共看了一万次洞,问小兔子藏在哪些洞里是安全的。