日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

复杂链表的赋值

發(fā)布時(shí)間:2024/4/11 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 复杂链表的赋值 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include<iostream>
#include<stdio.h>
using namespace std;


struct ComplexNode{?


int ?_data ; // 數(shù)據(jù)?


struct ComplexNode * _next; // 指向下一個(gè)節(jié)點(diǎn)的指針?


struct ComplexNode * _random; // 指向隨機(jī)節(jié)點(diǎn)(可以是鏈表中的任意節(jié)點(diǎn) or 空)?


};




ComplexNode* CreatComplexNode(int data)
{
ComplexNode* ?Node=(ComplexNode*)malloc(sizeof(ComplexNode));
if(Node==NULL)
{
printf("out of memeory\n!!");
return NULL;
}
Node->_data=data;
Node->_next=NULL;
Node->_random=NULL;


return Node;


}


ComplexNode* CreatComplexList()
{
ComplexNode* ?n1=CreatComplexNode(1);


ComplexNode* ?n2=CreatComplexNode(2);
ComplexNode* ?n3=CreatComplexNode(3);
ComplexNode* ?n4=CreatComplexNode(4);


n1->_next=n2;
n2->_next=n3;
n3->_next=n4;
n4->_next=NULL;


n1->_random=n3;
n2->_random=NULL;
n3->_random=n2;
n4->_random=n4;


return n1;
}
ComplexNode* ?CopyComplexNode(ComplexNode* pHead)
{
ComplexNode* newnode=NULL;
ComplexNode* cur=pHead;
while(cur)//給新節(jié)點(diǎn)賦值
{
newnode= CreatComplexNode(cur->_data);
newnode->_next=cur->_next;
cur->_next=newnode;
cur=newnode->_next;
}
//給新節(jié)點(diǎn)的random賦值
cur=pHead;
ComplexNode* Nextnode=NULL;
while(cur)
{
Nextnode=cur->_next;
Nextnode->_random=cur->_random;
cur=Nextnode->_next;
}
//拆分
newnode=pHead->_next;
Nextnode=newnode;
cur=Nextnode->_next;
pHead->_next=cur;
while(cur)
{
newnode=cur->_next;
newnode=newnode->_next;
cur->_next=newnode->_next;
cur=cur->_next;

}
return newnode;




}
void print(ComplexNode* pHead)
{
if(pHead==NULL)
return ;
ComplexNode* p=pHead;
while(p)
?{
if(p->_random)
{
printf("%d:random->%d \n",p->_data,p->_random->_data);
}
else
{
printf("%d:random->NULL\n",p->_data);
}
?p= p->_next;
?} ?


}
int main()
{
ComplexNode pNode;
ComplexNode* ll=CreatComplexList( );
print(ll);
ComplexNode* l2=CopyComplexNode(ll);
print(l2);
system("pause");
return 0;
} 超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的复杂链表的赋值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。