循环链表-创建和输出-习题-狼抓兔子

如题:

代码如下:

 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号洞……每次多隔一个。如果大灰狼一共看了一万次洞,问小兔子藏在哪些洞里是安全的。

原文地址:https://www.cnblogs.com/wanjinliu/p/11414982.html