以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  恳请高手指教链表的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=22625)


--  作者:afly
--  发布时间:9/28/2005 10:41:00 AM

--  恳请高手指教链表的问题
如何将二维数组为数据结构的程序改写为以单向链表结构
开头如下:

struct LinkNode

{
  int Row;            //存放二维数组的行号
  int Column;         //存放二维数组的列号
  int Data;           //存放二维数组对应行号及列号中的数
  LinkNode *Next;     //指向下一个结点的指针
};

用此单向链表结构来表示二维数组,不限二维数组的大小

请各位高手详细的写一下创建结点,舔加结点的程序代码,麻烦了!


--  作者:蓝雪宇
--  发布时间:9/28/2005 9:39:00 PM

--  
struct LinkNode
{
  int Row;                    /*存放二维数组的行号*/
  int Column;              /*存放二维数组的列号*/
  int Data;                   /*存放二维数组对应行号及列号中的数*/
  struct LinkNode *Next,;     /*指向下一个结点的指针*/
};
struct Nodeinfo
{
   struct LinkNode *start,*nonce;  /*指向二维数组链表开始(当前)位置*/
   int Nrow,Ncolumn;                     /*二维数组总行数和列数*/
}*info=NULL;

int Linkinfo(int row,int column)
{
   if(!info)
   {   info=(struct Nodeinfo *)calloc(1,sizeof(struct Nodeinfo));
       if(!info)
       { puts("Not enough memory!");getchar();exit(1);}
       info->start=info->nonce=NULL,info->Nrow=row,info->Ncolumn=column;
       return 1;}
   puts("LinkNode already exist!");getchar();
   return 0;
}

int addnode(int data)
{
    struct LinkNode *temp=NULL;
    if(!info)
    { puts("Please create LinkNodeinfo!");getchar();return 0;}
    temp=(struct LinkNode *)calloc(1,sizeof(struct LinkNode));
    if(!temp)
    {puts("Not enough memory!");getchar();exit(1);}
    if(!info->nonce)
    {info->nonce=info->start=temp,temp->Row=temp->Cloumn=0,temp->Data=data;
      return 1;}
    if(info->nonce->Row<=info->Nrow-1)
    {
        if(info->nonce->Column==info->Ncolumn-1)
        {
            if(info->nonce->Row==info->Nrow-1)
            {puts("Already to max");getchar();return 0;}
            info->nonce->next=temp,temp->Nrow=info->nonce->Nrow+1;
            temp->Column=0,info->nonce=temp;return 1;
        }
         info->nonce->next=temp,temp->Nrow=info->nonce->Nrow;
         temp->Column=info->nonce->Column+1,info->nonce=temp;
         return 1;
    }
}
这是一种方法,还有其他的方法你自己可以研究先.


--  作者:afly
--  发布时间:9/29/2005 2:31:00 PM

--  
太感谢了,以后还请多多指教
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
54.688ms