
c语言数据结构问题
#include<stdio.h>#include<malloc.h>structff{intID;structff*next_friend;structff*next;...
#include<stdio.h>
#include<malloc.h>
struct ff
{
int ID;
struct ff *next_friend;
struct ff *next;
};
void main()
{
int circle_num,i,j,num;
scanf("%d",&circle_num);
ff *c,*c1,*c2;
c2=(ff *)malloc(sizeof(ff));
c=c2;
for(i=0;i<circle_num;i++)
{
c1=(ff *)malloc(sizeof(ff));
scanf("%d",&num);
ff *c3=(ff *)malloc(sizeof(ff));
c2=c3;
ff *c4;
for(j=0;j<num;j++)
{
c4=(ff *)malloc(sizeof(ff));
scanf("%d",&c3->ID);
c3->next_friend=c4;
c3=c4;
}
c3->next_friend=NULL;
c2->next=c1;
c2=c1;
}
int l;
ff *c5,*c6;
c5=c;
for(l=0;l<circle_num;l++)
{
c6=c5;
while(c6->next_friend!=NULL)
{
printf("%d ",c6->ID);
c6=c6->next_friend;
}
printf("%d\n",c6->ID);
c5=c5->next;
}
}
大概是想做一个表格,只不过,每行的元素个数不一定相等
程序语法是没有错误,但是有点问题 展开
#include<malloc.h>
struct ff
{
int ID;
struct ff *next_friend;
struct ff *next;
};
void main()
{
int circle_num,i,j,num;
scanf("%d",&circle_num);
ff *c,*c1,*c2;
c2=(ff *)malloc(sizeof(ff));
c=c2;
for(i=0;i<circle_num;i++)
{
c1=(ff *)malloc(sizeof(ff));
scanf("%d",&num);
ff *c3=(ff *)malloc(sizeof(ff));
c2=c3;
ff *c4;
for(j=0;j<num;j++)
{
c4=(ff *)malloc(sizeof(ff));
scanf("%d",&c3->ID);
c3->next_friend=c4;
c3=c4;
}
c3->next_friend=NULL;
c2->next=c1;
c2=c1;
}
int l;
ff *c5,*c6;
c5=c;
for(l=0;l<circle_num;l++)
{
c6=c5;
while(c6->next_friend!=NULL)
{
printf("%d ",c6->ID);
c6=c6->next_friend;
}
printf("%d\n",c6->ID);
c5=c5->next;
}
}
大概是想做一个表格,只不过,每行的元素个数不一定相等
程序语法是没有错误,但是有点问题 展开
2016-10-12
展开全部
#include<stdio.h>
#include<malloc.h>
struct ff
{
union {int ID; // 数据节点,存放数据信息
struct ff *next; }; // 每行的头结点,存放下一行的头结点的地址即指向下一行
struct ff *next_friend; // 指向下一个数据节点
};
void main()
{
int circle_num,i,j,num;
scanf("%d",&circle_num); // 行数
ff *c,*c1,*c2;
c=(ff *)malloc(sizeof(ff)); // 第一行头结点
c1=c2=c;
c2->next=NULL;
for(i=0;i<circle_num;i++)
{
scanf("%d",&num);
ff *c3=c2; //(ff *)malloc(sizeof(ff));
ff *c4;
for(j=0;j<num;j++)
{
c4=(ff *)malloc(sizeof(ff));
scanf("%d",&c4->ID);
c3->next_friend=c4;
c3=c4;
}
c3->next_friend=NULL;
c2=(ff *)malloc(sizeof(ff));
c2->next = c1;
c1->next=c2;
c1=c2;
}
c2->next->next =NULL;
free(c2);
int l;
ff *c5,*c6;
c5=c;
for(l=0;l<circle_num;l++)
{
c6=c5->next_friend;
while(c6!=NULL)
{
printf("%d ",c6->ID);
c6=c6->next_friend;
}
printf("\n");
c5=c5->next;
}
}
改动了一下,表格的每行有一个头结点, 头结点有next,指向下一行,其他节点是ID,,存放信息。
以上代码估计会存在问题的情况是行数为0的时候
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |