文档章节

207MergeList

把南墙撞开
 把南墙撞开
发布于 2016/05/11 09:57
字数 282
阅读 14
收藏 0
点赞 2
评论 0

新建一个项目,创建文件mergeList.cpp。

代码中要包含项目“204LinkList”中的文件

//mergeList.cpp
#include"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\204LinkList\204LinkList\c1.h"
#include"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\204LinkList\204LinkList\elemtype.h"
#include"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\204LinkList\204LinkList\c2-2.h"
#include"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\204LinkList\204LinkList\bo2-2.cpp"
#include"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\204LinkList\204LinkList\function.h"

void MergeList(LinkList La, LinkList Lb, LinkList &Lc)
{
	InitList(Lc);
	int i = 0;
	LinkList pa = La->next, pb = Lb->next;
	while (pa && pb)
	{
		if (pa->data == pb->data)
		{
			ListInsert(Lc, ++i, pa->data);
			pa = pa->next;
			pb = pb->next;
		}
		else if (pa->data < pb->data)
		{
			ListInsert(Lc, ++i, pa->data);
			pa = pa->next;
		}
		else
		{
			ListInsert(Lc, ++i, pb->data);
			pb = pb->next;
		}
	}
	while (pa)
	{
		ListInsert(Lc, ++i, pa->data);
		pa = pa->next;
	}
	while (pb)
	{
		ListInsert(Lc,++i, pb->data);
		pb = pb->next;
	}
}

int main()
{
	LinkList La, Lb, Lc;
	InitList(La);
	InitList(Lb);
	for (int i = 0; i < 5; i++)
	{
		ListInsert(La, i + 1, i);
	}
	for (int i = 0; i < 8; i++)
	{
		ListInsert(Lb, i + 1, i + 2);
	}
	ListTraverse(La, print);
	cout << endl;
	ListTraverse(Lb, print);
	cout << endl;

	MergeList(La, Lb, Lc);
	ListTraverse(Lc, print);

	cin.get();
	return 0;
}

 

© 著作权归作者所有

共有 人打赏支持
把南墙撞开
粉丝 0
博文 67
码字总数 20424
作品 0
昌平

暂无相关文章

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部