回答編集履歴
2
コードコメント修正
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
struct node* next;
|
13
13
|
} NODE;
|
14
14
|
|
15
|
-
//
|
15
|
+
// node の後ろに追加し, 追加したノードを返す
|
16
16
|
struct node *insert(NODE *node, elementtype e) {
|
17
17
|
NODE *new = malloc(sizeof(NODE));
|
18
18
|
new->element = e;
|
1
追記
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
オリジナルは入力時にリストを作りながら別途最大値の位置を求めていますが、「片方向循環リストの生成」と「最大値のノードの検索」を分けたほうが良いかもしれません。
|
2
2
|
|
3
3
|
片方向循環リストは、先頭もしくは最後を示すポインタのみで生成・管理出来ます。以下のコードでは ( 入力順にリストを生成する必要があるので ) insert を"リストの最後に追加する"関数としています。
|
4
|
-
最後の入力のノードの次 (next) は最初の入力のノードですので、検索はそのノードから始めるものとし、見つかった最大値のノードから表示を行います。
|
4
|
+
最後の入力のノードの次 (next) は最初の入力のノードですので、検索はそのノードから始めるものとし、見つかった最大値のノードから表示を行います。( "n 番目"という指定(パラメータ)では起点となるノードが別に必要ですが、直接ノードを指定すれば必要ありません。)
|
5
5
|
```c
|
6
6
|
#include<stdio.h>
|
7
7
|
#include<stdlib.h>
|