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...