我需要一些关于我的家庭作业的想法。考虑以下定义:
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);我有点纠结于如何实现它。这不是代码的问题,而是如何做的问题。不用说,我们不允许将数字转换为整数,乘法,然后将结果转换为列表。
任何帮助都将不胜感激。
谢谢。
发布于 2012-04-16 06:40:26
这将是代码重用的一个很好的练习。既然您已经创建了一个将两个链表编号相加的函数,那么您是否可以使用该函数来执行(部分)乘法?毕竟,乘法可以手动执行,方法是将第一个数字与第二个数字中的一个数字重复相乘,然后将所有结果相加。试着这样做:
https://stackoverflow.com/questions/10166737
复制相似问题