雙向鍊錶的雙向遍歷

2021-10-03 12:35:17 字數 567 閱讀 2299

雙向鍊錶的雙向遍歷

雙向煉表相比較於單向鍊錶的優勢之一就是可以快速遍歷,對於單向鍊錶只能借助於單個指標逐個遍歷,而對於雙向鍊錶而言因為每個節點都存在乙個前指標和後指標,所以可以借助於兩個指標雙向遍歷,相對於單向鍊錶而言可以節省很多時間。但是對於雙向鍊錶的雙向遍歷需要考慮的因素偏多,**的步驟需要非常嚴謹。對於兩個指標而言需要考慮節點數是奇數還是偶數,若是奇數,要考慮兩指標相遇的情況,只需要輸出其中乙個指標所指的節點內容即可,若為偶數節點,要考慮兩指標不能擦肩而過的情況。

**如下:

void print_link(data *head) //雙向遍歷

else

printf("%d %s %d\n",pl->num,pl->name,pl->score);

printf("%d %s %d\n",pf->num,pf->name,pf->score);

pl=pl->next;

pf=pf->pre;

}while(pl->pre!=pf);// 鍊錶為偶數時交叉

}return;

}

mysql 雙向鍊錶 雙向鍊錶

雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...

mysql的引雙向鍊錶 雙向鍊錶

public classdoublelinkedlist else 新增至鍊錶尾 paramnode public voidaddlast doublenode node else 按照某屬性的順序新增 paramnode public voidaddbyorder doublenode node ...

雙向鍊錶 3 反轉雙向鍊錶

雙向鍊錶的反轉過程,可以參考下面的例圖。a 原始雙向鍊錶 b 反轉後的雙向鍊錶 下面是乙個用於反轉雙向鍊錶的簡單方法。所需要做的事情就是交換每個節點的前向指標和後向指標,然後調整鍊錶的頭指標和尾指標。include struct node 對鍊錶進行反轉 void reverse node head...