C 链表连续节点

C 链表连续节点,c,list,linked-list,C,List,Linked List,有没有办法获得链表中的5个连续元素?我想计算3个连续元素的和,并将其与接下来2个元素的和进行比较 我曾尝试将元素保存在数组中,然后检查总和,但我认为我已经摆脱了这个问题 for(i=0; i<size;i++) { array[i]=curr_item->type; curr_item=curr_item->next; } for(i=0; i<size; i++) { sum=(array[i]+array[i+1]+array[i+2]) - (arr

有没有办法获得链表中的5个连续元素?我想计算3个连续元素的和,并将其与接下来2个元素的和进行比较

我曾尝试将元素保存在数组中,然后检查总和,但我认为我已经摆脱了这个问题

for(i=0; i<size;i++)
{ 
  array[i]=curr_item->type;
  curr_item=curr_item->next;
}

for(i=0; i<size; i++)
{
  sum=(array[i]+array[i+1]+array[i+2]) - (array[i+3]+array[i+4]);
  if (sum>0)
     printf("Successfull\n")
  else 
     printf("Wrong\n");
}
for(i=0;itype;
当前项目=当前项目->下一步;
}
对于(i=0;i0)
printf(“成功\n”)
其他的
printf(“错误的\n”);
}

要遍历一个典型的链接列表,它类似于以下内容(C样式):

从这里开始,您需要做的就是在while循环中添加一些if-then逻辑,以将正确的有序元素添加到一起

如果您使用的是更为用户友好的软件,那么您可能必须能够通过以下方式(伪代码)逃脱处罚:


当然是。但这不是一个好问题。当然有办法。但是你试过什么?
typedef struct list{
    struct list next,
    int value
} list;

list * iterator = headOfList;

while(itertaor != NULL)
   iterator = iterator->next;
int count = 0;
int sum = 0;

while(itertaor != NULL){
       if(count == 0 || count == 1)
           sum += iterator->value;
       iterator = iterator->next;
       count++;
}
  foreach( item in list )
         if ( item is 1st, 2nd, or 3rd)
            add to running sum