我想在链表中的Give节点之前插入一个值。 我的函数在这里搜索一个值,如果找到一个值,则返回一个节点。
Llist* search_res(int val, Llist **u = NULL)
{
//searches for a value in list
int flag = 0;
Llist *temp = start;
while (temp->nxtptr != NULL)
{
*u = temp;
if (temp->data == val)
{
flag = 1;
break;
}
temp = temp->nxtptr;
}
if (temp->data == val && flag == 0)
{
flag = 1;
}
if (flag == 0)
{
cout << "Value not found\n";
return NULL;
}
return temp;
}
void insert_before_a_node()
{
if (null_check())
{
cout << "List empty\n";
return;
}
int val;
Llist *u = start, *t, *bef;
cout << "Before which element:";
cin >> val;
t = search_res(val, &u);
if (t == NULL)
{
return;
}
else if (t == start)
{
insert_at_begin();
return;
}
cout << t->data << "\t" << u->data << endl;
bef = new Llist;
bef->data = input_val();
bef->nxtptr = t;
u->nxtptr = bef;
}
我创建了一个包含元素10、20、30、40的链表 现在,当我搜索值30时。 节点30存储在t中,节点30也存储在u中,我希望将节点30存储在t中,并将节点20存储在u中。