博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于visual Studio2013解决面试题之0804复杂链表
阅读量:4634 次
发布时间:2019-06-09

本文共 2059 字,大约阅读时间需要 6 分钟。



题目

解决代码及点评

 
 
 
 
 
/*	复杂链表的拷贝,现在有一个复杂链表,完成一个clone函数拷贝一个链表	复杂链表是指	struct Node	{		struct Node* _next;		struct Node* _sibling;  // sibling指向链表中任意一个节点,或者为NULL		int _data;	};	这道题困难之处在于复制sibling节点,因为按照普通思维,复制好普通链表之后	恢复sibling节点指向非常困难	解决办法:	就地复制,再拆分	比如 原始链表是 a->b->c->d   先就地复制 a->a1->b->b1->c->c1->d->d1	就地复制后,sibling指针也很好确定,就是原来那个节点的next,放置好sibling之后,再进行拆分即可*/#include 
#include
#include "iostream"using namespace std;typedef struct link{ char id; struct link *pnext; struct link *pSibling; } *plink,link;// 创建链表plink creat(){ plink la,lb,lc,ld,le; la = (plink)malloc(sizeof(link)); lb = (plink)malloc(sizeof(link)); lc = (plink)malloc(sizeof(link)); ld = (plink)malloc(sizeof(link)); le = (plink)malloc(sizeof(link)); la->pnext=lb; la->pSibling=lc; la->id='a'; lb->pnext=lc; lb->pSibling=ld; lb->id='b'; lc->pnext=ld; lc->pSibling=NULL; lc->id='c'; ld->pnext=le; ld->pSibling=la; ld->id='d'; le->pnext=NULL; le->pSibling=NULL; le->id='e'; return la; }plink copy(plink l){ plink head2=l; // 就地复制 while(head2!=NULL) { plink temp; temp = (plink)malloc(sizeof(link)); temp->id=head2->id; temp->pnext=head2->pnext; head2->pnext=temp; head2=temp->pnext; } head2=l; plink headt=l->pnext; // 设置sibling while(head2->pnext->pnext!=NULL) { if (head2->pSibling!=NULL) { headt->pSibling=head2->pSibling->pnext; } headt=headt->pnext->pnext; head2=head2->pnext->pnext; } // 拆分链表 headt=l->pnext; plink l2=headt; cout<
id<<"->"; while(headt->pnext->pnext->pnext!=NULL) { headt->pnext=headt->pnext->pnext; headt=headt->pnext; cout<
id<<"->"; } cout<
pnext->id<<"->"; return l2; }// 主函数int main(){ plink l; l = creat(); plink l2; l2=copy(l); system("pause"); return 0;}

代码下载及其运行

代码下载地址:http://download.csdn.net/detail/yincheng01/6704519

解压密码:c.itcast.cn

下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:

1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”

2)在下拉框中选择相应项目,项目名和博客编号一致

3)点击“本地Windows调试器”运行

程序运行结果






转载于:https://www.cnblogs.com/niulanshan/p/6175122.html

你可能感兴趣的文章
virtual hust 2013.6.20 数论基础题目 D - Just the Facts
查看>>
eShopOnContainers 知多少[8]:Ordering microservice
查看>>
bzoj 1040: [ZJOI2008]骑士 树形dp
查看>>
hdu 1423
查看>>
hdu 4720
查看>>
友元关系
查看>>
IO缓冲区
查看>>
一道SQL统计试题
查看>>
OO第二次博客作业
查看>>
mysql 批量更新数据类型
查看>>
HDU 1273 漫步森林
查看>>
Bootstrap4.x 新增
查看>>
太久没来了,好尴尬呀
查看>>
django 链接地址匹配流程
查看>>
图片和文件上传的两款插件
查看>>
简析平衡树(三)——浅谈Splay
查看>>
The Knuth-Morris-Pratt Algorithm in my own words(转)
查看>>
374. Guess Number Higher or Lower
查看>>
目标反射回波检测算法及其FPGA实现 之一:算法概述
查看>>
php去除字符串首尾空格(包括全角)(转)
查看>>