複雜單鏈表的複製

2021-10-07 06:05:12 字數 1050 閱讀 7045

typedef struct complexlist

complexlist, *pcomplexlist;

void initlist(pcomplexlist& phead)

complexlist *buynode(datatype x)

// 建立乙個複雜單鏈表

void insertnode(pcomplexlist& phead)

tmp = phead;

for(;index<6;index++)

phead->_random = tmp;

}void printlist(complexlist* phead)

printf("null\n");

}//複製

complexlist *copylist(pcomplexlist& phead)

//將此單鏈表的每個元素拷貝乙份,插入到每個原來單鏈表節點的後面

while(begin != null)

//將每個新插入節點的_random連線起來

cur =phead;

prve = phead->_next;

while(cur)

prve = prve->_next->_next ;

cur = cur->_next->_next ; }

//拆分成兩個單鏈表

pa = phead;

pb = phead->_next ;

while(pa)

complexlist *prvea = pa;

complexlist *cura = pa->_next->_next;

complexlist *prveb = pb;

complexlist *curb = pb->_next->_next;

prvea->_next = cura;

prveb->_next  = curb;

pa= pa->_next ;

pb = pb->_next;

} return pb;

}

複雜單鏈表的複製

wz asust 2016 1 先int例項 後模板化 2 複製不能改變原串的資料及結構 3 隨機指標的正確性 思考 除了追加新結點後分離新舊鍊錶 還有一複雜度高的演算法,就是記錄下每乙個結點,隨機指標指向的結點在整個鏈中的排序 佇列實現 建立新煉表後,根據佇列記錄,連線隨機指標 不能記錄值,僅能實...

複雜單鏈表的複製

複雜單鏈表的複製 一 何為複製單鏈表 就我們所知,單鏈表也就是乙個結點包含乙個資料域和乙個指標域,這樣若干個結點構成的鍊錶。而複雜單鏈表和普通單鏈表差不多,唯一的不同就是多乙個random。我們可以用一張圖來表示 那我們怎麼來進行複雜鍊錶的複製呢,現在公認的最有效的方法只有一種,就是在原有單鏈表的每...

單鏈表的複製 C 實現

include includeusing namespace std typedef int datatype 定義鍊錶資料結構 typedef struct nodelnode,linklist int main 尾插法 建立鍊錶 linklist tail create linklist h n...