English 中文(简体)
CLinked List - 2. 返回第一组项目
原标题:C Linked List - Return to the first stack item

我试图写出一个功能,从相关名单中删除某些价值,回到整个清单。 然而,我目前的问题是把标明第一个项目的清单,而不是排在名单之后的最后一个项目。

守则希望:

static LISTITEM *removeItem(LISTITEM *list, int n) {
    LISTITEM *thislist = list;
    while (thislist != NULL) {
        if (thislist->value == n) {
            LISTITEM *old;
            old = thislist;
            thislist = thislist->next;
            free(old);
        }
        thislist = thislist->next;
    }
    return thislist;
}

守则没有犯错误,但当我试图打印打字清单时,在这项职能被称作后,它没有印刷任何东西(原清单是打印的)。

我猜测这个问题,是因为当thislist>被退回时,由于该回程,目前处于名单上最后一部分。

最佳回答

您需要填写<代码>list,而不是thislist。 更清楚的是,如果您更名为<代码>,<>list至>,标题>,则该编号为>>。

此外,你不把你的项目从名单上删除。 你们都把一些记忆放开,把要点留给了。 因此,你今后可能 crash忙于你们的名单上。

为了确定,您需要保留上一个要素的<代码>前。 一旦你发现你的成分,你需要<代码> 之前的编号和编号;next = 现行编号/编码。 只有到那时,没有什么东西会提到目前的要素,而且你才能安全地释放这一要素(除非你在其他地方储存点)。

显然有一个特殊的情况:当标题是你想要删除的项目时(如果你没有以前的项目),我请你说明:

As a side note: once you fixed your code you will remove all occurences of n from the list as it stands - this might or might not be what you want (consider to leave the while loop when you found your element)

问题回答

您的职能将永远恢复全国人民代表大会。 “名单”而不是“名单”从功能上返回。





相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签