11-10. エンドレスチェーン
◇エンドレスチェーン
それでは、ここでエンドレスチェーンを作ってみましょう。
エンドレスチェーンとは始まりと終りのないチェーンで具体的には自転車のチェーンがそれに当たります。
因みにバイク屋でチェーン交換の時エンドレスチェーンを指定すると、結構、迷惑かもしれません。(タイヤはずさないと取り付けられないから)
さっきのプログラムのs5には次の構造体が示されていませんでした。
つまり、ここにs1のアドレスを指定すれば、s5とs1が繋がって見事に、エンドレスチェーンができあがります。(片道通行ではありますが・・・)
1: #include<stdio.h>
2:
3: typedef struct data_chain{
4: int number;
5: char *p_string;
6: struct data_chain *p_st;
7: }DataChain;
8:
9: main()
10: {
11: DataChain s1={1,"NameA",NULL};
12: DataChain s2={2,"NameB",NULL};
13: DataChain s3={3,"NameC",NULL};
14: DataChain s4={4,"NameD",NULL};
15: DataChain s5={5,"NameE",NULL};
16: DataChain *p_data;
17:
18: s1.p_st = &s2;
19: s2.p_st = &s3;
20: s3.p_st = &s4;
21: s4.p_st = &s5;
22: s5.p_st = &s1;
23:
24: for(p_data = &s1; p_data != NULL; p_data = p_data->p_st)
25: printf("%2d %s\n",p_data->number, p_data->p_string);
26: return;
27: }
とりあえず、エンドレスチェーンはできましたが無限ループなので実行したら [Ctrl]+[C] でプログラムを止めてください。
