-2
所以我在尋找一個鏈表與節點設置這樣鏈表指針運算混亂
struct node {
node *next;
node **prev;
};
node *rel_list;
有人可以解釋的指針操作在下面的代碼塊是如何工作的(從節點創建函數)特別是第5行
1 node *r;
2 r->next = rel_list;
3 r->prev = &rel_list;
4 if (rel_list)
5 rel_list->prev = &r->next;
6 rel_list = r;
雙向鏈表中的正確方法是使用'node * next,* prev'。 'node ** prev'很奇怪,並且會導致問題和困惑(這個想法大概是指向下一個節點是來自'this'的前一個節點''下一個'節點的成員)。然而,目前還不清楚你想要實現什麼以及代碼塊的意圖是什麼。 – Walter
爲什麼使用'node ** prev'而不是'node * prev'。 'prev'應該指向'node',而不是指針。 –
在互聯網上搜索「C++鏈接列表示例」並與您的代碼進行比較。 –