我有三个相同类型的链表节点,schcurr、search 和 schtemp。但是只有搜索有链接。schcurr 和 schtemp 没有链接。我使用搜索来找到我想放置 schcurr 的地方,我使用 schtemp 只是为了帮助我保持链接。如果以下条件成立,则 schcurr 支配搜索。所以,我想用 schcurr 替换搜索。搜索已经在列表中,而 schcurr 尚未连接到任何东西。
我把代码的相关部分如下,但我被困在那里:(
PS:TC1 是 int 和 WF1 是 float 并且它们不是 NULL。
if(schcurr.TC1==search.TC1)
{
if(schcurr.WF1>search.WF1)
{
//schcurr dominates search.
schcurr.next=seach.next;
schcurr.prev=seach.prev;
}
}
现在我需要更正search.prev 的next 和search.next 的prev。我想我不能设置 search.prev.next=schcurr; 和 seach.next.prev=schcurr; 我可以吗?
任何帮助表示赞赏。
节点信息定义:
struct schedules{
float WF1;
int TC1;
schedules *prev;
schedules *next;
};
struct schedules *sch;
struct schedules *head;
struct schedules *tail;
struct schedules *schtemp;
struct schedules *search;