?? 算法5.4 建立稀疏矩陣十字鏈表.txt
字號(hào):
MLink CreatMLink( ) /* 返回十字鏈表的頭指針*/
{
MLink H;
Mnode *p,*q,*hd[s+1];
int i,j,m,n,t;
datatype v;
scanf(“%d,%,%d”,&m,&n,&t);
H=malloc(sizeof(MNode)); /*申請(qǐng)總頭結(jié)點(diǎn)*/
H->row=m; H->col=n;
hd[0]=H;
for(i=1; i<S; i++)
{ p=malloc(sizeof(MNode)); /*申請(qǐng)第i個(gè)頭結(jié)點(diǎn)*/
p->row=0; p->col=0;
p->right=p; p->down=p;
hd[i]=p;
hd[i-1]->v_next.next=p;
}
hd[S]->v_next.next=H; /*將頭結(jié)點(diǎn)們形成循環(huán)鏈表*/
for (k=1;k<=t;k++)
{ scanf (“%d,%d,%d”,&i,&j,&v); /*輸入一個(gè)三元組,設(shè)值為int*/
p=malloc(sizeof(MNode));
p->row=i ; p->col=j; p->v_next.v=v
/*以下是將*p插入到第i行鏈表中去,且按列號(hào)有序*/
q=hd[i];
while ( q->right!=hd[i] && (q->right->col)<j ) /*按列號(hào)找位置*/
q=q->right;
p->right=q->right; /*插入*/
q->right=p;
/*以下是將*p插入到第j行鏈表中去,且按行號(hào)有序*/
q=hd[i];
while ( q->down!=hd[j] && (q->down->row)<i ) /*按行號(hào)找位置*/
q=q->down;
p-> down =q-> down; /*插入*/
q-> down =p;
} /*for k*/
return H;
} /* CreatMLink */
算法5.4 建立稀疏矩陣的十字鏈表
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -