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 回答