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

#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
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
你这是二叉树的问题吗

2006-10-25 12:03
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 

这个貌似距阵


c++/C + 汇编 = 天下无敌
2006-10-25 16:12
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

//数组的三元组顺序表...有点忘了,这个算的好像是求两个数组相加吧
你的程序出错是小错误,以后注意就好了...

程序代码:
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1250
typedef struct{
int i;
int j;
int e;
}Triple;
typedef struct{
Triple data[MAXSIZE+1];
int mu,nu,tu;
}TSMatrix;
void TSMatrix_Add(TSMatrix M1,TSMatrix M2,TSMatrix *M){//这里M是指针类型,传的时候要传地址的,还有函数没有返回值,最好用void标明
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,M;//M定义下

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);
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-25 19:01
快速回复:关于二叉树的一个问题
数据加载中...
 
   



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

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