在节点之前插入链表的问题

时间:2019-04-01 14:21:23

标签: c++

我想在链表中的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中。

0 个答案:

没有答案