
关于数据结构(C语言)的问题~!
试分别用顺序表和单链表作为存储结构,实现将线性表(a0,a1,...an-1)就地逆置的操作,所谓"就地"指辅助空间应为O(1)。下面是我自己写的,刚刚学,很多地方是借鉴...
试分别用顺序表和单链表作为存储结构,实现将线性表(a0,a1,...an-1)就地逆置的操作,所谓"就地"指辅助空间应为O(1)。
下面是我自己写的,刚刚学,很多地方是借鉴来的,希望懂的高手帮我分析下.谢谢了.
#include<stdio.h>
#include<stdlib.h>
typedef int Datatype;
typedef struct{
Datatype data[20];
int length;
}Seqlist;
void ReverseList( Seqlist *L)
{
Datatype t ;
int i;
for ( i=0 ; i < L->length/2 ; i++)
{ t = L->data[i];
L -> data[ i ] = L -> data[ L -> length - 1 - i ] ;
L -> data[ L -> length - 1 - i ] = t ;
}
}
void InitList(Seqlist *L)
{
L->length=0;
}
void main()
{
int i;
Seqlist *p=new Seqlist;
InitList(p);
for(i=0;i<10;i++)
p->data[i]=i;
ReverseList(p);
for(i=0;i<10;i++)
printf("%d ",p->data[i]);
} 展开
下面是我自己写的,刚刚学,很多地方是借鉴来的,希望懂的高手帮我分析下.谢谢了.
#include<stdio.h>
#include<stdlib.h>
typedef int Datatype;
typedef struct{
Datatype data[20];
int length;
}Seqlist;
void ReverseList( Seqlist *L)
{
Datatype t ;
int i;
for ( i=0 ; i < L->length/2 ; i++)
{ t = L->data[i];
L -> data[ i ] = L -> data[ L -> length - 1 - i ] ;
L -> data[ L -> length - 1 - i ] = t ;
}
}
void InitList(Seqlist *L)
{
L->length=0;
}
void main()
{
int i;
Seqlist *p=new Seqlist;
InitList(p);
for(i=0;i<10;i++)
p->data[i]=i;
ReverseList(p);
for(i=0;i<10;i++)
printf("%d ",p->data[i]);
} 展开
1个回答
展开全部
Seqlist是一个结构体类型,含有一个整型数组和一个存储数组元素个数的length变量。函数InitList()的作用是使数组元素个数归零,然后你在主函数中给Seqlist的实例p赋值了。接下来ReverseList()的作用是让数组元素倒序,其实也就是把第一个和最后一个元素调换,第二个和倒数第二个元素调换……一直到第length/2个元素和倒数第length/2个元素调换。最后输出。
程序中的错误:
1.
Seqlist *p=new Seqlist;
这不是MFC!要这样写:
Seqlist *p=(Seqlist *)malloc(sizeof(Seqlist));
2.
p中的length变量未重新赋值,始终为0
在ReverseList(p); 前加上
p->length=i;
程序中的错误:
1.
Seqlist *p=new Seqlist;
这不是MFC!要这样写:
Seqlist *p=(Seqlist *)malloc(sizeof(Seqlist));
2.
p中的length变量未重新赋值,始终为0
在ReverseList(p); 前加上
p->length=i;

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询