【发布时间】:2021-07-11 22:18:27
【问题描述】:
我想编写一个打印链表重复项的程序。列表定义如下:
typedef struct node
{
char *name;
char *num[10];
struct node* next;
}node;
我想根据存储电话号码字符串的 num 数组来比较它们。我的问题是,每个节点可能不一定有相同数量的电话号码,有些可能有一个,有些可能有 10 个。有人可以告诉我,如果任何节点有一个共同的号码,我将如何找到?
【问题讨论】:
-
你需要退后一步。您的设计需要指定如何确定给定单个节点的有效电话号码的计数。那是你的设计决定。一些示例:为计数存储一个额外字段或使用
NULL条目终止数组。 -
一旦您指定了有效计数的指示方式,它就会成为标准搜索问题。你应该研究搜索算法。蛮力方法是迭代一个节点中的每个数字,并将其与另一个节点中的每个数字进行比较。
-
忘记链表。你能写一个函数来比较一个电话号码和另一个电话号码并返回共享数字的数量吗?
-
这个问题太笼统了。首先解决如何在电话号码字符串中找到给定的电话号码。
标签: arrays c linked-list