#include
int i,j;
ElemType e;
struct OLNode *right,*down; }OLNode,*OLink;
typedef struct {
OLink *rhead,*chead; int mu,nu,tu; }CrossList;
int CreateSMatrix_OL(CrossList &M) {
int i,j,e; int k;
printf(\请输入数组的行,列,非零元的个数:\\n\ scanf(\
if(!(M.rhead=(OLink*)malloc((M.mu+1)*sizeof(OLink)))) exit(OVERFLOW);
if(!(M.chead=(OLink*)malloc((M.nu+1)*sizeof(OLink)))) exit(OVERFLOW);
for(k=0;k M.rhead[k]=NULL; } for(k=0;k M.chead[k]=NULL; } OLink p,q; printf(\请输入三元组数:\\n\ for(k=0;k scanf(\ printf(\ if(!(p=(OLink)malloc(sizeof(OLNode)))) exit(OVERFLOW); p->i=i; p->j=j; p->e=e; if(M.rhead[i]==NULL||M.rhead[i]->j>j) { p->right=M.rhead[i]; M.rhead[i]=p; } else { for(q=M.rhead[i];(q->right)&&q->right->j if (M.chead[j]==NULL||M.chead[j]->i>i) { p->down=M.chead[j]; M.chead[j]=p; } else { for (q=M.chead[j];(q->down)&&q->down->idown) p->down=q->down; q->down=p; } } return OK; } int Output(CrossList M) { printf(\输出三元组:\\n\ for(int k=0;k OLink temp=M.rhead[k]; while(temp) { printf(\ %d %d \\t\\n\ temp=temp->right; } } return OK; } int main() {
相关推荐: