⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ten_link.cpp

📁 我们计算机科学学院教授上数据结构的课件
💻 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 + -