面試題26 複雜鍊錶的賦值

2021-07-03 00:11:13 字數 701 閱讀 1226

有乙個複雜鍊錶,其結點除了有乙個m_pnext指標指向下乙個結點外,還有乙個m_psibling指向鍊錶中的任一結點或者null。請完成函式complexnode* clone(complexnode* phead),以複製乙個複雜鍊錶。

structcomplexnode ;

#include using namespace std;

struct complexnode

;//1.對原始鍊錶每個結點n進行複製記錄為n',並將n'連線到n之後

void clonenodes(complexnode * phead)

}//2.對n'的m_psibling進行賦值,原始鍊錶上結點n的m_psibling指向s的話,n'的m_psibling指向s'

void connectsiblingnodes(complexnode * phead)

pnode=pclone->m_pnext; }}

//3.拆分鍊錶,將n和n'分開

complexnode * reconnectnodes(complexnode * phead)

while(pnode!=null)

return pclonehead;

}//呼叫函式完成對複雜鍊錶的複製

complexnode * clone(complexnode * phead)

面試題26 複雜鍊錶的賦值

題目 請實現complexlistnode clone complexlistnode phead 複製乙個複雜鍊錶。在複雜鍊錶中,每個結點除了有乙個m pnext指標指向下乙個結點外,還有乙個m psibling指向鍊錶中任意乙個節點。結點定義如下 1 struct complexlistnode...

面試題26 複雜鍊錶的複製

以下圖為5個結點的複雜鍊錶,實線表示m pnext指標的指向,虛線表示m psibling指標的指向 方法一 分兩步 1 遍歷一遍鍊錶,用m pnext指標將鍊錶連起來,o n 2 確定每個m psibling指標的指向,需重新遍歷新鍊錶確定其m psibling的指向,o n 時間代價為o n 2...

面試題26 複雜鍊錶的複製

1.給定乙個複雜的鍊錶的資料結構,複製這個鍊錶,在這個資料結構中,每個節點有兩個指標,乙個指標指向下乙個結點,另乙個指標指向鍊錶中的任意結點。資料結構 struct complexlistnode 分析 如下圖所示是乙個複雜鍊錶的示意圖,實現標誌指向下一節點的指標,虛線表示指向任意結點的m psib...