C语言链表数组如何仅输出指定下标的单个链表(如src=1对应link[1])
实现方案
你已经明确链表下标i和节点的src字段值一一对应,因此src=1对应的链表头就是link[1],可以按以下两种方式实现需求:
方式一:直接调用现有output函数(无需修改原有代码,最简便)
在需要打印的位置直接执行以下代码即可:
output(&link[1]);
输出结果就是src=1对应的所有节点内容,和你示例中展示的第一组输出完全一致。
方式二:封装为按src值查询打印的通用函数
如果需要频繁按指定src值打印对应链表,可以新增一个通用函数:
// 参数说明:set为链表数组,target_src为要打印的目标src值 void display_by_src(Node **set, int target_src) { output(&set[target_src]); }
调用时直接传入目标src值即可:
// 打印src=1对应的链表 display_by_src(link, 1);
额外优化提示:你现有的display函数存在数组越界风险:如果参数n是链表数组的总长度,循环条件i <= n会访问到set[n]这个超出数组合法范围的位置,建议将循环条件修改为i < n,避免内存访问错误。
内容的提问来源于stack exchange,提问作者wajaap
相关产品推荐
相关产品推荐

