我有一个家庭作业问题,我必须:写一个插入函数,在一个存储特定DATA项的元素后面的列表中的第一个位置插入一个元素。我也必须使用这个功能。我不明白问题是什么。有人可以用更容易理解的方式向我解释这个问题吗?
#include "list.h"
LINK lookup(DATA c, LINK head)
{
if (head == NULL)
return NULL;
else if ( c == head -> d)
return head;
else
return (lookup(c, head -> next));
}
答案 0 :(得分:0)
问题是要求你编写一个在列表中找到指定项目的函数,然后在该位置后面的列表中插入新项目。
所以给出了列表
List = {Item1, Item2, Item3, Item4}
您的函数List.Insert(Item2, Item5)
(例如)应该导致
List = {Item1, Item2, Item5, Item3, Item4}
答案 1 :(得分:0)
你有一个链表。该列表由LINK
结构组成(更准确地说,LINK
类型的类型是typedef'd指向实际节点结构的指针。我们没有在前面的定义我们,但可能每个LINK
结构都包含一个DATA
结构以及通常的链接指针。
您的任务是获取列表头LINK
和DATA
结构并搜索列表,直到找到第一个LINK
DATA
与你给的那个相同。然后,将新元素插入到LINK
之前的列表中。
答案 2 :(得分:0)
要求您在链接列表中找到DATA c
(函数lookup( )
将为您执行此操作),然后在DATA
和c
之间插入DATA
项{1}}之后的{1}}项如果c
是列表中的最后一个c
项,那么您要将新的DATA
项添加为最终DATA
项。如果列表为空,即如果DATA
返回lookup( )
,那么您的新NULL
项应存储为列表中唯一的DATA
项。
为什么不发布DATA
的相关部分,以便我们了解链接列表的外观?
发布整个list.h
函数也是一个好主意。