📄 ten_link.cpp
字号:
#include <iostream.h>
#include <stdlib.h>
typedef struct node
{
int row,col,val;
struct node *down, *right;
}JD;
void crt_linkedmat(JD *rh[],JD *ch[],int *hs,int *ls)
{
int m,n,i,r,c,v;
JD *p,*q,*s;
cout<<"Input m,n:";
cin>>m>>n;
for(i=0;i<m;i++) rh[i]=NULL;
for(i=0;i<n;i++) ch[i]=NULL;
*hs=m; *ls=n;
for(;;)
{
cout<<"Input r,c,v:";
cin>>r>>c>>v;
if(r==0 || c==0) break;
if((r>m)||(c>n)) continue;
s=(JD *)malloc(sizeof(JD));
if (!s)
{
cout<<"Error"<<endl;return;
}
s->row=r;
s->col=c;
s->val=v;
s->right=s->down=NULL;
q=NULL;
p=rh[r-1];
while((p!=NULL)&&(c>p->col))
{
q=p; p=p->right;
}
if(p==NULL)
{
if(q==NULL) rh[r-1]=s;
else q->right=s;
}
else if(c==p->col)
{
p->val=v; free(s); continue;
}
else
{
if(q==NULL)
{
rh[r-1]=s; s->right=p;
}
else
{
s->right=p; q->right=s;
}
}
q=NULL;
p=ch[r-1];
while((p!=NULL)&&(r>p->row))
{
q=p; p=p->down;
}
if(p==NULL)
{
if(q==NULL) ch[c-1]=s;
else q->down=s;
}
else
{
if(q==NULL)
{
ch[c-1]=s; s->down=p;
}
else
{
s->down=p; q->down=s;
}
}
}
}
void output(JD *rh[],JD *lh[],int m,int n)
{
JD *p;
for(int i=0;i<m;i++)
{
p=rh[i];
while (p)
{
cout<<p->row<<" "<<p->col<<" "<<p->val<<endl;
p=p->right;
}
}
}
int main()
{
JD *rl[4],*cl[3];
int hs,ls;
crt_linkedmat(rl,cl,&hs,&ls);
output(rl,cl,4,3);
system("PAUSE");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -