时间:2014-11-12 来源:

C语言:十字链表的相加相减【编程语言】

#include<stdio.h>
#include<stdlib.h>
#define N 100
typedef struct node
{
	int row, s;
	int n, data;
	cl=(list)malloc( sizeof(struct crosslist) );
	if( !cl )
	{
		printf("\n无法生成十字链表\n");
		return 0;
	}
	
	printf("\n矩阵总行数: ");
	scanf("%d", &m);
	cl->rows=n;
	cl->cols=m;
	cl->nums=0;

	for(i=0; i<n; i++)
	{
		cl->rowhead[i]=(link )malloc( sizeof(struct node) );
		cl->rowhead[i]->r=NULL; 
	}


	for(j=0; j<m; j++)
	{
		cl->colhead[j]=(link )malloc( sizeof(struct node) );
		cl->colhead[j]->d=NULL;
	}

	for(i=0; i<n; i++)
	{
		printf("\n第%d行:", &data);
			if(data != 0)
			{
				p=(link)malloc( sizeof(struct node) );

				p->v=data;
				p->row=i+1;
				p->col=j+1;
				cl->nums++;

				p->r=q->r;
				q->r=p;
				q=p;
				
				s=cl->colhead[j];
				while( s->d )
					s=s->d;
				p->d=s->d;
				s->d=p;
			}
		}
	}
	return cl;
}

list copy(list s1)
{
	list s3;
	link p, t, list b)//s1 = s1+s2;
{
	list s1, b

	link p, t, p1;
	int count=0;

	s1=copy(a);
	s2=copy(b);

	for(i=0; i<s1->rows; i++)
	{
		p=s1->rowhead[i];//按行序升序把第二个矩阵与第一个矩阵相加,兼职手机网页制作一行一行相加
		q=s2->rowhead[i]->r;

	    while(q)
		{
			if( !p->r )//q插入web切图报价,第二个矩阵插入		
			{	
			    p->r=q;//行连接,网站div+css一个一个来
			    p1=s1->colhead[q->col-1];//列连接

		     	while( p1->d &&  p1->d->row < q->row )	
				{
			    	p1=p1->d;
				}
			   q->d=p1->d;
			   p1->d=q;//

			   p=p->r;
			   q=q->r;
			   p->r=NULL;
			   count++;
			   continue;
			}

		 
			if( p->r->col < q->col)
			{
		     	p=p->r;	   
				count++;
				continue;
			}


		
			if( p->r->col > q->col)
			{
				t=q->r;//保存q->r;
		     	q->r=p->r; p->r=q;//行连接

				p1=s1->colhead[q->col-1];//列连接
		     	while( p1->d &&  p1->d->row < q->row )
				{
			    	p1=p1->d;
				}
			   q->d=p1->d;
			   p1->d=q;
			    
			   p=p->r; q=t;//下一轮比较	
			   count++;
			   continue;
			}

			if(p->r->col == q->col)
			{
			    p->r->v += q->v;
				if(p->r->v != 0)
				{	
					count++;
					p=p->r; 
					q=q->r;	 
				}

				else
				{
				   count--;	
			       t=p->r;//行连接
			       p->r=t->r;

				   p1=s1->colhead[q->col-1]; //列是[0~~cols];
				   while( p1->d->row < q->row)	
				   {		 
					   p1=p1->d;  
				   }
				 
				   p1->d=t->d;
			       free(t);
				   q=q->r;
				}
			  
			}

		}
	}
	s1->nums=count;	

	return s1;
}


list sub(list a, s2;//复制矩阵a, q, p1;
	int count=0;

	s1=copy(a);
	s2=copy(b);

	for(i=0; i<s1->rows; i++)
	{
		p=s1->rowhead[i];//按行序升序把第二个矩阵与第一个矩阵相加承接网页制作,一行一行相加
		q=s2->rowhead[i]->r;

	    while(q)
		{
			if( !p->r )//q插入,兼职手机网页制作第二个矩阵插入		
			{	
				q->v=0-q->v;
			    p->r=q;//行连接web切图报价,%d)  %d\t",p->col, p->v);	
				  p=p->r;
				}
				else
					printf("  0");
		}
		printf("\n");
	}
	puts("\n");

}


void output_2(list cl)
{
	link p;
	putchar('\n');
	for(i=0; i<cl->cols; i++)
	{
		p=cl->colhead[i]->d;
		while(p)
		{
			printf("(%d, p->row,p->v);
			p=p->d;
		}
	}	
	putchar('\n');
}
			
void main()
{
	list a, s;

	a=init(a);
	output(a);

	b=init(b);
	output(b);


	puts("\n\t\t    A + B");
	s=add(a, b);
	output(s);
}

















	



点击次数:6880
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日一步一步跟我学习lucene(15)---java读取wordexcelpdf及lucene搜索之正则表达式查询RegExQuery和手机邮箱查询示例 【移动开发】2015年06月01日Android里实现退出主程序的提示代码2014年01月30日hdu4884TIANKENG’sriceshop【模拟】【编程语言】2014年11月26日【LeetCode】LongestCommonPrefix【编程语言】2015年02月04日弹弹球【综合】2015年06月11日JS实现Table相同行的单元格自动合并示例代码2014年01月29日D3DXComputeBoundingSphere和D3DXComputeBoundingBox 【移动开发】2015年02月27日poj2417DiscreteLogging数论baby_step,giant_step算法 【移动开发】2015年04月17日8个具备HTML5Canvas动画的图像效果 ,,2016年06月23日sed修连接文件,有坑 【数据库】2015年06月11日API的设计与实现 【移动开发】2015年06月25日JavaScript获取当前时间戳的代码2014年01月29日Java中Runnable和Thread的区别的疑问 【综合】2015年06月17日遇到Librarycacheloadlock等待事件【数据库】2015年05月11日javascript模拟select实现代码2014年01月29日网站结构和内容是重点2014年01月28日总结【移动开发】2015年04月29日【C++】LeetCode:102FlattenBinaryTreetoLinkedList(二叉树转前序链表) 【编程语言】2015年01月19日单例创建及宏实现单例 【编程语言】2015年04月24日案例解析专题页面设计思路2014年01月28日一个XML格式数据转换为图表的例子2014年01月29日【再不换工作,钱都被别人赚了】K2新年第一波招聘来了【互联网】2015年01月09日插件管理框架forDelphi(二)2014年01月29日用PHP和ACCESS写聊天室(二)2014年01月29日HDU1863-畅通工程Prim最小生成树算法 【编程语言】2015年08月26日1089.InsertorMerge 【编程语言】2015年03月10日线程小感 【综合】2015年08月17日UnrealEngine4蓝图之自定义事件 【Web前端】2015年01月12日mac下eclipse创建Android项目为空的解决办法, 【编程语言】2015年04月09日php循环检测目录是否存在并创建(循环创建目录)2014年01月29日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)