//顺序存储结构下线性表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条回答 默认 最新
悬赏问题
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!
- ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
- ¥15 求daily translation(DT)偏差订正方法的代码
- ¥15 js调用html页面需要隐藏某个按钮