2014-05-25 79 views
-1

有沒有辦法獲得鏈表的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"); 
} 
+0

當然是了。但這對於SO來說不是一個好問題。 –

+0

當然有辦法。但你有什麼嘗試? –

回答

2

越來越除了要遍歷它是這樣一個典型的鏈接列表(C風格):

typedef struct list{ 
    struct list next, 
    int value 
} list; 

list * iterator = headOfList; 

while(itertaor != NULL) 
    iterator = iterator->next; 

所有你需要從這裏做的事情是在while循環中添加一些if-then邏輯來添加正確的有序元素。例如,如果你使用一些更人性化,你就必須有可能能夠與這樣的閃避(pseudo_code加上前兩個元素(假設列表中有兩個以上的元素)

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