//顺序存储结构下线性表La的逆序(int)
#include
#include
#define len 100
#define increse_len 10
typedef struct LIST
{
int *elem;
int length; //当前长度
int list_size; //当前容量
}LIST,*pLIST;
pLIST craet()
{
int data=0;
pLIST L,newbase;
L->elem=(int *)malloc( len*sizeof(int) ); //初始申请空间100个
if(!L) //判断是否申请成功
exit(0);
L->length=0; //初始长度
L->list_size=len; //初始容量
printf("请输入: ");scanf("%d",&data); //输入第一个数据
while(data!=0) //判断数据是否为0
{
for(;L->length < L->list_size;)
{
L->elem[L->length++]=data; //按顺序保存数据
scanf("%d",&data); //再次输入
if(data==0) //判断是否为0
exit(0);
}
if(L->length==L->list_size); //长度超出
{
L->list_size+=increse_len; //添加长度并更改长度值
newbase->elem=(int *)realloc(L->elem,L->list_size*sizeof(int)); //重新分配长度
if(!newbase->elem)
exit(0);
L->elem=newbase->elem;
}
}
return L; //返回地址
}
void printA(pLIST pHead) //顺序输出
{
while(pHead->elem!=0)
{
printf("\t%d",pHead->elem++);
pHead++;
}
printf("\n");
}
void printB(pLIST pHead)
{
if(pHead->elem!=0)
{
printB(++pHead);
if(pHead->elem!=0) //识别到开始位置的标记符号,不满足意思还没到最开始
printf("\t%d",pHead->elem);
}
}
void main()
{
pLIST head;
printf("非0数据的保存(以输入0为标志结束输入)\n");
head=creat();
printf("\n");
printf("顺序输出: ");
printA(head);
printf("逆序输出: ");
printB(head);
printf("\n\n");
}
不知道这个问题出现在哪里,看了三个小时了,大神帮帮忙 调整
//顺序存储结构下线性表La的逆序(int)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答
悬赏问题
- ¥15 matlab(相关搜索:紧聚焦)
- ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
- ¥15 路易威登官网 里边的参数逆向
- ¥15 Arduino无法同时连接多个hx711模块,如何解决?
- ¥50 需求一个up主付费课程
- ¥20 模型在y分布之外的数据上预测能力不好如何解决
- ¥15 processing提取音乐节奏
- ¥15 gg加速器加速游戏时,提示不是x86架构
- ¥15 python按要求编写程序
- ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入