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;
}
}
大概是想做一个表格,只不过,每行的元素个数不一定相等
程序语法是没有错误,但是有点问题 展开
1个回答
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的时候
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询