我需要一些关于我的家庭作业的想法。 请考虑以下定义:
typedef struct listNode {
int* dataPtr;
struct listNode* next;
} ListNode;
typedef struct list {
ListNode* head;
ListNode* tail;
} List;
每个列表节点代表一个数字。 每个数字由一个列表表示,但是以相反的方式表示:数字的最后一位是列表的第一个列表节点,该数字的第一个数字是列表的最后一个列表节点。
我写了这个函数
void addNumbers(List n1, List n2, List *sum);
返回一个新列表,其中包含其他两个列表的总和。
现在我必须编写乘法函数:
void multNumbers(List n1, List n2 , List* prod);
我有点坚持如何实现它。它不是关于代码,而是关于如何做到这一点。 不用说,我们不允许将数字转换为整数,乘以并将结果转换为列表。
任何帮助都将受到高度赞赏。
感谢。
答案 0 :(得分:1)
这将是代码重用的一个很好的练习。既然您已经创建了一个添加两个链表号的函数,那么您是否可以利用该函数执行乘法(部分)?毕竟,乘法可以通过重复地将第一个数字乘以第二个数字中的一个数字,然后加上所有结果来手动执行。尝试以下几点:
addNumbers()