#include"wz.h"
struct ComplexNode{ int value; ComplexNode* pNext; ComplexNode* pSibling;};
void deleteList(ComplexNode* pHead)
{ while(pHead!=NULL)
{ ComplexNode* pNext = pHead->pNext; delete pHead; pHead = pNext; }
}
void Con(ComplexNode* pHead)
{
ComplexNode* pNode = pHead;
while(pNode != NULL)
{
ComplexNode *pCloned = pNode->pNext;
if(pNode->pSibling != NULL)
{
pCloned->pSibling = pNode->pSibling->pNext;
}
pNode = pCloned->pNext;
}
}
void print(ComplexNode* pHead)
{ ComplexNode* p=pHead;
while(p) { cout<<p->value<<" "; p=p->pNext;}
cout<<endl;
}
ComplexNode* myClone2(ComplexNode* pHead)
{
ComplexNode*p= new ComplexNode;
ComplexNode*q= NULL;
ComplexNode*newhead= NULL;
if(pHead)
{ p=pHead;
while(p->pNext)
{
ComplexNode*add= new ComplexNode;
add->value=p->value;
add->pSibling=NULL;add->pNext=p->pNext;
p->pNext=add;
p=p->pNext->pNext;
}
ComplexNode*add= new ComplexNode;
add->value=p->value;
add->pSibling=NULL;add->pNext=p->pNext;
p->pNext=add;
p=pHead;
q=p->pNext;
newhead=q;
Con(p);
q=newhead;
while(q->pNext)
{
p->pNext=q->pNext;p=p->pNext;
q->pNext=p->pNext;q=q->pNext;
}
p->pNext=NULL;
}
return newhead;
}
void t2()
{ ComplexNode* p1 = new ComplexNode; ComplexNode* p2 = new ComplexNode;
ComplexNode* p3 = new ComplexNode; ComplexNode* p4 = new ComplexNode;
p1->pNext = p2; p2->pNext = p3; p3->pNext = p4; p4->pNext = NULL;
p1->value = 1 ; p2->value = 2; p3->value = 3 ; p4->value = 4;
p1->pSibling = p3;p2->pSibling = p4; p3->pSibling = NULL; p4->pSibling = NULL;
print(p1);
ComplexNode* newHead = myClone2(p1);
cout<<"old link:"<<endl; print(p1);
cout<<"new link:"<<endl; print(newHead);
cout<<(newHead->pSibling)->value<<endl; //3
deleteList(newHead);
deleteList(p1);
}
int main()
{
t2();
return 0;
}简单版 无库函数
原创
©著作权归作者所有:来自51CTO博客作者wzdouban的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
函数递归(简单易懂)
简单易懂的介绍了递归的概念和使用介绍
递归 n的阶乘 #include -
新建工程—库函数版
在了解STM32的标准库文件之后,我们就可以使用它来建立工程了,因为用库新建工程步
选项卡 库文件 新建工程 -
Python编程:Turtle库函数(图片版)Python编程教学
-
【Kotlin】标准库函数 ③ ( with 标准库函数 | also 标准库函数 )
一、with 标准库函数、二、also 标准库函数
kotlin android 标准库函数 with also -
lua 一些简单的库函数
这是一些简单的库函数函数 返回rawqual(n,m)
lua 函数 加载 库函数 -
【Kotlin】标准库函数 ① ( apply 标准库函数 | let 标准库函数 )
一、apply 标准库函数二、let 标准库函数
kotlin android apply let 标准库函数 -
【Kotlin】标准库函数 ④ ( takeIf 标准库函数 | takeUnless 标准库函数 )
一、takeIf 标准库函数二、takeUnless 标准库函数
kotlin android 标准库函数 takeIf takeUnless
















