0

私はCが初めてです。

struct test{
   int val;
   struct test *next
};

この構造体を使用してリストが作成されている場合、ポインターを介してどのように最大値を見つけますか?

リストが上記の構造体のオブジェクトで満たされていると仮定して、私は試しました

struct test *t1 = malloc(sizeof (struct test));
struct test *t2 = malloc(sizeof (struct test));
While (list !=NULL){
  int max=0;
  struct test *t1, *t2;
  if(t1->val < t2->val){
     max = t2->val;             
  }
 list = list->next;
}

しかし、私はその背後にあるロジックを理解していないと思います。ポインターを使用して構造体のリストの最大値を見つける方法の説明または例が必要です。あなたの助けに感謝します。

4

1 に答える 1

2

これはあなたが理解するのに役立つかもしれません(私は推測します)

スニペット:

max = t1->val; /* take first value */
/* this is one way of traveling through the simple (?) list */
for(pointer = t1->next; pointer; pointer = pointer->next)
     max = pointer->val > max ? pointer->val : max;

printf("max: %d\n", max);

編集: t1 が入力されたリストを参照すると仮定します。

于 2012-10-23T02:00:06.923 に答える