鱼C论坛

 找回密码
 立即注册
查看: 3033|回复: 4

[已解决]这个简单的出栈入栈为哪里错了啊,求大佬

[复制链接]
发表于 2020-7-16 10:36:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么这个简单的栈的代码一直显示这个错误,实在找不出来哪里错了,如图:

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<malloc.h>
  4. typedef struct Node{
  5.         int val;
  6.         struct Node* next;
  7. }NODE,*PNODE;

  8. typedef struct Stack{
  9.         struct Node* sTop;
  10.         struct Node* sBottom;
  11. }STACK,*PSTACK;

  12. //栈的初始化
  13. void init(PATACK s){
  14.         s->sBottom=(PNODE)malloc(sizeof(NODE));
  15.         s->sTop=s->sBottom;
  16.         s->sBottom->next=NULL;
  17. }
  18. //进栈
  19. void push(PSTACK s,int val){
  20.         PNODE p=(PNODE)malloc(sizeof(NODE));
  21.         p->val=val;
  22.         p->next=s->sTop;
  23.         s->sTop=p;       
  24. }
  25. //出栈
  26. void pop(PSTACK s,int val){       
  27.         PNODE p;
  28.         //确保栈为非空时,再出栈
  29.         if(empty(s)){
  30.                 printf("出栈失败!因为栈为空\n");
  31.                 return false;
  32.         }
  33.         //删除当前栈的结点
  34.         p=s->sTop;
  35.         s->sTop=s->sTop->next;
  36.         free(p);
  37.         //输出需要出栈的元素
  38.         printf("出栈元素为:%d\n",val);       
  39. }
  40. //栈是否为空
  41. bool empty(PSTACK s){
  42.         if(s->sBottom==s->sTop)
  43.         return ture;
  44.         else
  45.         return false;
  46. }

  47. main(){

  48.     //定义一个栈
  49.         Stack s;
  50.        
  51.         //初始化栈
  52.         init(&s)
  53.        
  54.         //进栈
  55.         push(&s,5);
  56.         push(&s,6);
  57.         push(&s,7);
  58.         push(&s,8);
  59.     push(&s,9);
  60.        
  61.         //遍历
  62.          
  63.        
  64.         //出栈
  65.         pop(&s,9);
  66.     pop(&s,8);
  67.         pop(&s,7);
  68.         pop(&s,6);

  69.        
  70. }
复制代码
最佳答案
2020-7-16 10:40:01
不是PSTACK吗?咋变成PATACK了
3_9O}R6)D2AO]I$0[H_4])W.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-16 10:40:01 | 显示全部楼层    本楼为最佳答案   
不是PSTACK吗?咋变成PATACK了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-16 10:41:41 | 显示全部楼层
qiuyouzhi 发表于 2020-7-16 10:40
不是PSTACK吗?咋变成PATACK了

我看看哈,难道我写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-16 10:45:19 | 显示全部楼层
爱学习520 发表于 2020-7-16 10:41
我看看哈,难道我写错了

还有一堆错误,都帮你改过来了:
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<malloc.h>
  4. # include <stdbool.h>

  5. typedef struct Node{
  6.         int val;
  7.         struct Node* next;
  8. }NODE,*PNODE;

  9. typedef struct Stack{
  10.         struct Node* sTop;
  11.         struct Node* sBottom;
  12. }STACK,*PSTACK;

  13. //栈是否为空
  14. bool empty(PSTACK s){
  15.         if(s->sBottom==s->sTop)
  16.                 return true;
  17.         else
  18.                 return false;
  19. }


  20. //栈的初始化
  21. void init(PSTACK s){
  22.         s->sBottom=(PNODE)malloc(sizeof(NODE));
  23.         s->sTop=s->sBottom;
  24.         s->sBottom->next=NULL;
  25. }
  26. //进栈
  27. void push(PSTACK s,int val){
  28.         PNODE p=(PNODE)malloc(sizeof(NODE));
  29.         p->val=val;
  30.         p->next=s->sTop;
  31.         s->sTop=p;        
  32. }
  33. //出栈
  34. bool pop(PSTACK s,int val){        
  35.         PNODE p;
  36.         //确保栈为非空时,再出栈
  37.         if(empty(s)){
  38.                 printf("出栈失败!因为栈为空\n");
  39.                 return false;
  40.         }
  41.         //删除当前栈的结点
  42.         p=s->sTop;
  43.         s->sTop=s->sTop->next;
  44.         free(p);
  45.         //输出需要出栈的元素
  46.         printf("出栈元素为:%d\n",val);        
  47. }

  48. int main(){

  49.     //定义一个栈
  50.     STACK s;
  51.         
  52.     //初始化栈
  53.     init(&s);
  54.         
  55.     //进栈
  56.     push(&s,5);
  57.     push(&s,6);
  58.     push(&s,7);
  59.     push(&s,8);
  60.     push(&s,9);
  61.         
  62.     //遍历
  63.          
  64.         
  65.     //出栈
  66.     pop(&s,9);
  67.     pop(&s,8);
  68.     pop(&s,7);
  69.     pop(&s,6);

  70.         
  71. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-16 11:27:38 | 显示全部楼层
qiuyouzhi 发表于 2020-7-16 10:45
还有一堆错误,都帮你改过来了:

谢谢大佬,我已经都运行通过啦,刚刚是写错了,哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-11 04:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表