鱼C论坛

 找回密码
 立即注册
查看: 3539|回复: 1

链式栈问题

[复制链接]
发表于 2018-12-17 15:56:27 | 显示全部楼层 |阅读模式

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

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

x
  1. #include<stdio.h>
  2. #include<malloc.h>
  3. typedef char datetype;
  4. typedef struct node
  5. {
  6.         datetype date;
  7.         struct node *p;

  8. } LSstack;

  9. void LSstack_initialize(LSstack** headpoint);
  10. int LSstack_notempty(LSstack* headpoint);
  11. void LSstack_push(LSstack **headpoint, datetype);
  12. int LSstack_pop(LSstack** headpoint, datetype*);
  13. int LSstack_top(LSstack* headpoint, datetype*);



  14. void LSstack_initialize(LSstack** S)
  15. {       
  16.         (*S) = (LSstack*)malloc(sizeof(LSstack));
  17.         (*S)->p = NULL;
  18. }

  19. int LSstack_notempty(LSstack* S)
  20. {
  21.         if ((S->p) != NULL)
  22.                 return 0;
  23.         else return 1;
  24. }

  25. void LSstack_push(LSstack **S, datetype a)
  26. {       
  27.         if ((*S)->p = NULL)
  28.         {
  29.                 (*S)->date = a;
  30.         }
  31.         else
  32.         {
  33.                 LSstack* m_p;
  34.                 m_p = (*S);
  35.                 (*S) = (LSstack*)malloc(sizeof(LSstack));
  36.                 (*S)->p = m_p;
  37.                 (*S)->date = a;
  38.         }


  39. }

  40. int LSstack_pop(LSstack** S, datetype *d)
  41. {       
  42.         if ((*S) == NULL)
  43.                 return 0;
  44.         else
  45.         {
  46.                 LSstack* m_p;
  47.                 m_p = (*S)->p;
  48.                 *d = (*S)->date;
  49.                 free(*S);
  50.                 (*S) = m_p;
  51.                 return 1;
  52.         }
  53.        

  54. }

  55. int LSstack_top(LSstack* S, datetype *d)
  56. {
  57.         if(S == NULL)
  58.                 {
  59.                         printf("error");
  60.                         return 0;
  61.                 }
  62.         *d = S->date;
  63.         return 1;
  64. }

复制代码


求大佬帮我看看这栈问题出在哪 测试了一下好像不能存超过两个数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-28 15:26:02 | 显示全部楼层
void LSstack_push(LSstack **S, datetype a)
{        
        if ((*S)->p = NULL)
        {
                (*S)->date = a;
        }

  if ((*S)->p = NULL)判断里面应该是双等号==

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 22:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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