| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖
标题:关于二叉树的一个问题
取消只看楼主 加入收藏
albert528108
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-10-13
收藏
 问题点数:0 回复次数:0 
关于二叉树的一个问题

#define MAXSIZE 1250
typedef struct{
int i;
int j;
int e;
}Triple;
typedef struct{
Triple data[MAXSIZE+1];
int mu,nu,tu;
}TSMatrix;
int TSMatrix_Add(TSMatrix M1,TSMatrix M2,TSMatrix *M){
int pa,pb,pc;
int ce;
int x;
M->mu=M1.mu;
M->nu=M1.nu;
M->tu=M1.tu;
pa=1;
pb=1;
pc=1;
for(x=1;x<=M1.mu;x++)
{
while(M1.data[pa].i<x)pa++;
while(M1.data[pb].i<x)pb++;
while(M1.data[pa].i==x&&M2.data[pb].i==x)
{
if(M1.data[pa].j==M2.data[pb].j)
{
ce=M1.data[pa].e+M2.data[pb].e;
if(ce)
{
M->data[pc].i=x;
M->data[pc].j=M1.data[pa].j;
M->data[pc].e=ce;
pa++;
pb++;
pc++;

}
else if(M1.data[pa].j>M2.data[pb].j)
{
M->data[pc].i=x;
M->data[pc].j=M2.data[pb].j;
M->data[pc].e=M2.data[pb].e;
pb++;pc++;
}
else{
M->data[pc].i=x;
M->data[pc].j=M1.data[pa].j;
M->data[pc].e=M1.data[pa].e;
pa++;pc++ ;
}
}
while(M1.data[pa].i==x)
{
M->data[pc].i=x;
M->data[pc].j=M1.data[pa].j;
M->data[pc].e=M1.data[pa].e;
pa++;pc++;
}
while(M2.data[pb].i==x)
{
M->data[pc].i=x;
M->data[pc].j=M2.data[pb].j;
M->data[pc].e=M2.data[pb].e;
pb++;pc++;
}
}
M->tu=pc;
}
}


void main(){
int i,j,k,l;
TSMatrix M1,M2;

scanf("%d%d%d",&M1.mu,&M1.nu,&M1.tu);
for(k=1;k<=M1.tu;++k){
scanf("%d",&M1.data[k].i);
scanf("%d",&M1.data[k].j);
scanf("%d",&M1.data[k].e);
}

scanf("%d%d%d",&M2.mu,&M2.nu,&M2.tu);
for(k=1;k<=M2.tu;k++){
scanf("%d",&M2.data[k].i);
scanf("%d",&M2.data[k].j);
scanf("%d",&M2.data[k].e);
}

if((M1.mu!=M2.mu)||(M1.nu!=M2.nu))
{printf("Can't add two matrix");
exit(0);}

TSMatrix_Add( M1,M2,*M);
for(k=1;k<=M.tu;k++)
printf("%d%d%d",M->data[k].i,M->data[k].j,M->data[k].e);
}

用winTc编译后有错误,哪位高手帮忙找下.

搜索更多相关主题的帖子: 二叉树 
2006-10-25 10:34
快速回复:关于二叉树的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016295 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved