我需要帮助。我想一起添加两个列表(两个列表的总和)。
这个想法是采用两个元素列表,我需要得到这两个列表的总和。答案应该是整数(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 :(得分:0)
您可以在此链接中查找可用于执行此操作的代码: http://www.geeksforgeeks.org/add-two-numbers-represented-by-linked-lists/
并且你需要用整数表示求和,你可以通过在整数变量中保存最右边的数字来做到这一点,然后每当有其他元素来时你可以做变量= 10 ^ i +变量,其中我代表十个地方,比如i = 1表示10,i = 2表示100,依此类推。