| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 451 人关注过本帖
标题:十字链表的建立,但出错了,不知道错哪,帮忙看看。
只看楼主 加入收藏
handsomechow
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-13
结帖率:100%
收藏
 问题点数:0 回复次数:5 
十字链表的建立,但出错了,不知道错哪,帮忙看看。
在建表的地方就出错了,但看不出是哪 知道是在第一个函数里面出错
#include<stdio.h>
#include<stdlib.h>
typedef struct shizi
{
  int i,j,e;
  struct shizi *right;
  struct shizi *down;
}shizi,*sz;
typedef struct xinxi
{
sz *rhead;
sz *dhead;
int mu,nu,tu;
}xinxi;


 void inser(sz A,xinxi &L)
 {
      int i,j;
      sz p,q;
      p=A;
      i=A->i;j=A->j;
 if(L.rhead[i]==NULL||L.rhead[i]->j>j)
 {
     p->right=L.rhead[i];printf("sasas");
     L.rhead[i]=p;
 }
 else
 {   
 
 for( q=L.rhead[i];(j>q->right->j)&&(q->right);q=q->right);
 p->right=q->right;printf("ssddddd");
 q->right=p;
 }
if(L.dhead[j]==NULL||L.dhead[j]->i>i)
 {
     p->down=L.dhead[j];
     L.dhead[j]=p;
 }
 else
 {   
 
 for( q=L.dhead[j];(i>q->down->i)&&(q->down);q=q->down);
 p->down=q->down;
 q->down=p;
 }

 }
void creat(xinxi &L)
{
   int i,j,e=1,n; sz p;
   printf("输入行数,列数:\n");
   scanf("%d",&i);L.mu=i;
   scanf("%d",&j);L.nu=j;
   L.tu=0;
  
    L.rhead=(sz *)malloc((i+1)*sizeof(sz));
    for(n=0;n<=i;n++,L.rhead[n]=NULL);
    L.dhead=(sz *)malloc((j+1)*sizeof(sz));
    for(n=0;n<=j;n++,L.dhead[n]=NULL);
    while(true)
    {
    printf("输入值,行下标,列下标并以0结束:\n");
    scanf("%d",&e);
    if(e==0) break;
    scanf("%d",&i);
    scanf("%d",&j);
    p=(sz)malloc(sizeof(shizi));
    p->e=e;p->i=i;p->j=j;
    inser(p,L);
    }

}

   int main(void)
   {
   xinxi LA;xinxi LB;
   printf("第一个十字链表\n");
   creat(LA);
   printf("第二个十字链表\n");
   creat(LB);
        
return 0;
   }
搜索更多相关主题的帖子: include 
2012-11-13 13:53
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
知道  问题  那接下来就是把逻辑理清楚了  然后再去修改...
2012-11-13 23:07
handsomechow
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-13
收藏
得分:0 
回复 2楼 寒风中的细雨
版主啊,这程序我编了好几天了,但是就是改不出来啊,总觉得没错,但是再建表的时候就错了
2012-11-14 14:23
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
程序代码:
Program received signal SIGSEGV, Segmentation fault.
0x080485c4 in inser (A=0x804b080, L=...) at test.cxx:31
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
2012-11-14 16:37
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
程序代码:
    30
    31     for( q=L.rhead[i];(j>q->right->j)&&(q->right);q=q->right);
    32     p->right=q->right;printf("ssddddd");
    33     q->right=p;
    34     }
    35     if(L.dhead[j]==NULL||L.dhead[j]->i>i)
    36     {
    37          p->down=L.dhead[j];
    38          L.dhead[j]=p;
    39     }
    40     else
    41    { 
    42
    43     for( q=L.dhead[j];(i>q->down->i)&&(q->down);q=q->down);
    44     p->down=q->down;
    45     q->down=p;
    46     }
2012-11-14 16:38
handsomechow
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-13
收藏
得分:0 
回复 5楼 寒风中的细雨
好的 ,谢谢版主哦· ·呵呵·
2012-12-04 18:56
快速回复:十字链表的建立,但出错了,不知道错哪,帮忙看看。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018364 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved