2015-05-13 5 views
-4

Мне нужна помощь. Я хочу добавить два списка вместе (сумма из двух списков).Добавление двух списков в C

Идея состоит в том, чтобы взять два списка элементов, и мне нужно иметь сумму этих двух списков. ответ должен быть целым числом (int).

Вот мои коды:

typedef struct element element; 
struct element { 
    int val; 
    struct element *nxt; 
}; 


enum { STOCK_MEM = 1024}; 

struct element memoire[STOCK_MEM]; 

typedef element* llist; 

void init_memoire() { 
    int i; 
    for(i = 0; i < STOCK_MEM; i++) 
    memoire[i].val = -2; 
} 

llist consDebut(llist liste, int valeur) { 
    element* newEl = malloc(sizeof(element)); 
    newEl->val = valeur; 
    newEl->nxt = liste; 
    return newEl; 
} 

//Ajouter un élément en fin de la liste 
llist consFin(llist liste, int valeur) { 
    element* newEl = malloc(sizeof(element)); 
    newEl->val = valeur; 
    newEl->nxt = NULL; 
    if(liste == NULL) { 
    return newEl; 
    } else { 
    element* temp = liste; 
    while(temp->nxt != NULL) { 
     temp = temp->nxt; 
    } 
    temp->nxt = newEl; 
    return liste; 
    } 
} 


int estVide(llist liste) { 
    if(liste == NULL) { 
    return 1; 
    } else { 
    return 0; 
    } 
} 

int main() { 
    init_memoire(); 
    llist newlist = NULL; 
    int i; 
    for(i = 1; i <= 3; i++) { 
    newlist = consDebut(newlist, i); 
    newlist = consFin(newlist, i); 
    } 


    llist list2 = NULL; 
    int c; 
    for(c = 1; c <= 5; c++) { 
    list2 = consDebut(list2, c); 
    } 
return 0; 
} 

Может кто-нибудь помочь, пожалуйста

+0

Итак, когда ваш крайний срок? – gustafbstrom

+0

Менее 1 часа – rudstep

+0

Мой лучший совет: выберите любимый тип календаря - документ, Календарь Google или аналогичный - и начните добавлять к нему крайние сроки назначения. Это займет минуту больше вашей жизни за задание на расписание, но вы никогда не пожалеете об этом, по крайней мере, я этого не сделал. Теперь и вторично (я не даю вам код, вы должны подумать о том, как реализовать это самостоятельно): перебирайте оба списка в одном цикле и добавляйте элементы вместе в отдельной переменной. Это ответ на вашу проблему - счастливый взлом! – gustafbstrom

ответ

0

вы можете оформить эту ссылку на код, который вы можете использовать, чтобы сделать это: http://www.geeksforgeeks.org/add-two-numbers-represented-by-linked-lists/

и как вам нужно представить сумму в integer вы можете сделать это, сохранив правое большинство чисел в целочисленной переменной, а затем, когда придет какой-то другой элемент, вы можете сделать переменную = 10^i + переменную, где я представляю десять таких мест, как i = 1 для 10, i = 2 для 100 и так далее.

+0

Большое спасибо – rudstep

Смежные вопросы