复杂链表的复制
来源:互联网 发布:红色歌曲 知乎 编辑:程序博客网 时间:2024/05/06 07:28
//复杂链表的复制#include<iostream>#include<vector>using namespace std;struct complexNode{char value;complexNode *pNext;complexNode *pOther;};complexNode * copyComplexList(complexNode *pHead){if(pHead==NULL){return NULL;}if(pHead->pNext==NULL){complexNode *pHead_copy=new complexNode;pHead_copy->pNext=pHead_copy->pOther=NULL;return pHead_copy;}//第一步在每个结点的后面插入一个copyfor(complexNode *pNode=pHead;pNode!=NULL;pNode=pNode->pNext->pNext){complexNode *pNodeCopy=new complexNode;pNodeCopy->value=pNode->value;pNodeCopy->pNext=pNode->pNext;pNodeCopy->pOther=NULL;pNode->pNext=pNodeCopy;}//第二步 '遍历'扩充后的链表,设置copy结点的pOtherfor(complexNode *pNode=pHead;pNode!=NULL;pNode=pNode->pNext->pNext){if(pNode->pOther)pNode->pNext->pOther=pNode->pOther->pNext;elsepNode->pNext->pOther=NULL;}//第三步 拆分链表complexNode *pHead_copy=pHead->pNext;for(complexNode *pNode=pHead;pNode!=NULL;){complexNode *pTmp=pNode->pNext;if(pTmp){pNode->pNext=pNode->pNext->pNext;}pNode=pTmp;}return pHead_copy;}int main(){complexNode n1,n2,n3,n4,n5;n1.value='A',n2.value='B',n3.value='C',n4.value='D',n5.value='E';n1.pNext=&n2,n2.pNext=&n3,n3.pNext=&n4,n4.pNext=&n5,n5.pNext=NULL;n1.pOther=&n3,n2.pOther=&n5,n3.pOther=NULL,n4.pOther=&n2,n5.pOther=NULL;complexNode *pHead=&n1;complexNode *pHead_copy=copyComplexList(pHead);return 0;}
0 0
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复制复杂的链表
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- UVa:306 Cipher
- 浙大PAT 1010题 1010. Radix
- 策划的一揽子
- <MEMORY>Project Euler NO52
- git基本操作介绍
- 复杂链表的复制
- 利用JDBC连接服务器数据库
- <MEMORY>Project Euler NO53
- 跟我一起写 Makefile(六)
- 智能指针单例
- 安装完 MySQL 后必须调整的 10 项配置
- 从30岁到35岁:为你的生命多积累一些厚度
- 开源编译器学习笔记06(VC6 语法分析器——见面语法树状态机之start)——2014_2_2
- HDU2206-IP的匹配