为什么代码没有正常输出?

#include

#include

#include "stack.h"

int main()

{

Stack S;

int isEmpty;

printf("##########栈操作########\n");

S = CreateStack();

printf("输出栈中元素\n");

return 0;

}

下面是stack.h代码

#ifndef _STACK_H

#define _STACK_H

typedef int ElementType;

struct StackNode;

typedef struct StackNode *PtrToStackNode;

typedef PtrToStackNode Stack;

int IsEmpty( Stack S );

Stack CreateStack( void );

void DisposeStack( Stack S );

void MakeEmpty( Stack S );

void Push( ElementType E, Stack S );

ElementType Top( Stack S );

void Pop( Stack S );

/*实现栈---带特殊头结点的链表*/

struct StackNode

{

ElementType Element;

PtrToStackNode Next;

};

#endif //LINKEDLIST_STACK_H

int IsEmpty( Stack S )

{

return S->Next == NULL;

}

Stack CreateStack( void )

{

Stack S;

printf("What do you echo?\n");

S = malloc( sizeof( struct StackNode ) );

if( S == NULL )

exit(1);

MakeEmpty( S );

printf("\nIs something wrong here?\n");

return S;

}

void MakeEmpty( Stack S )

{

printf("\nMakeEmpty Stack\n");

int tmp;

if( S == NULL )

{

printf("S == NULL\n");

exit(1);

}

else

{

tmp = IsEmpty(S);

printf("tmp is%d\n",tmp);

while( !IsEmpty( S ) ){

Pop( S );

}

}

}

void Pop( Stack S )

{

PtrToStackNode FirstCell;

printf("Pop Stack\n");

if( IsEmpty( S ) )

{

printf("Pop Empty Stack\n");

exit(0);

}

else

{

printf("free firstCell\n");

FirstCell = S->Next;

S->Next = S->Next->Next;

free( FirstCell );

}

}

void Push( ElementType E, Stack S )

{

PtrToStackNode TmpCell;

TmpCell = malloc( sizeof( struct StackNode ) );

if( TmpCell == NULL )

exit(0);

else

{

TmpCell->Element = E;

TmpCell->Next = S->Next;

S->Next = TmpCell;

}

}

void DisplayStack( Stack S )

{

if( S == NULL )

exit(0);

else

{

while( S->Next != NULL){

printf("echo something");

printf("***%d***",S->Element);

S = S->Next;

}

}

}

程序执行时输出

debug时初始化的Stack是空的,为什么程序跑起来的时候就不为空了呢?

为什么“输出栈中元素”这个字符串没有输出啊!

望指教!

c语言is stack empty,C语言实现栈的问题相关推荐

  1. c语言实现stack的算法(附完整源码)

    C语言实现stack的算法 C语言实现stack的算法完整源码(定义,实现,main函数测试) C语言实现stack的算法完整源码(定义,实现,main函数测试) #ifndef STACK_H #d ...

  2. c语言中栈区运用原理形象图,C语言实现使用动态数组来构造栈结构

    我在面前一篇博客<C语言实现使用静态数组来构造栈结构>中使用了静态数组来模拟栈的操作.静态数组的大小是在代码中写死的.是存储在用户栈上面的,使用起来不灵活.在这篇博客中我会使用动态数组来构 ...

  3. python动态语言双刃性_动态语言的灵活性是把双刃剑:以 Python 语言为例

    原标题:动态语言的灵活性是把双刃剑:以 Python 语言为例 本文有些零碎,总题来说,包括两个问题:(1)可变对象(最常见的是list dict)被意外修改的问题,(2)对参数(parameter) ...

  4. C语言的内存管理(堆,栈,代码段,数据段)

    C语言的内存管理(堆,栈,代码段,数据段) 一.几个基本概念 在C语言中,关于内存管理的知识点比较多,如函数.变量.作用域.指针等,在探究C语言内存管理机制时,先简单复习下这几个基本概念: 1.变量: ...

  5. c语言计算器程序代码 链栈,【C语言】简易科学计算器源代码(链栈应用)(原创).doc...

    [C语言]简易科学计算器源代码(链栈应用)(原创) 用到的是算符优先法的思想,现摘自严蔚敏的数据结构(C语言版)的3.2.5章来详细说明算符优先法的思想: (摘抄结束) 我给出的计算器功能有:支持欧拉 ...

  6. c语言 程序段 数据段,C语言程序的段

    C语言程序的段 C语言在编译和连接后,将生成代码段(Text).只读数据段(ROData)和读写数据段(RWData).在运行时,除了以上三个区域外,还包括未初始化数据段(BSS)区域和堆(Heap) ...

  7. c语言 const常量作用,C语言 const常量讲解

    //const的本质 //const本质上是伪常量,无法用于数组初始化以及全局变量初始化 //原因在于const仅仅限定变量无法直接赋值,但是却可以通过指针间接赋值 //例如局部常量在栈区,而不在静态 ...

  8. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...

    [摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...

  9. bool类型返回值_Python 到底是强类型语言,还是弱类型语言?

    推荐三个网站 1.Python进阶知识: http://python.iswbm.com  2.Python魔法技巧: http://magic.iswbm.com 3.PyCharm 手册: htt ...

最新文章

  1. java获取24小时制时间格式_java 日期格式时间24小时制
  2. 【转】java接口的性能测试
  3. Redis专题-持久化方式
  4. 实现strstr(****)
  5. 51Nod - 1381 硬币游戏
  6. react学习(47)----react中initialValue和value不能一起定义
  7. linux的进程pcd,LINUX下查看点云图————point cloud(.ply .vtk .pcd)
  8. 初识人工智能(一):数据分析(二):numpy科学计算基础库(一)
  9. 《Python编程从入门到实践》记录之文件异常(try-except-else代码块)
  10. 基于前端javascript的搜索功能
  11. 百度图神经网络学习——day05:图神经网络进阶模型
  12. 从《Java核心技术》纵览Java全貌
  13. GAN详解与PyTorch MINIST手写数字生成实战
  14. day53_电力系统_ztree动态生成权限控制
  15. 如何查询出指定地点对应的经纬度(高德地图)
  16. 各平台安装OpenCV
  17. 蓝底换白底边缘不干净_蓝底换白底【解决措施】
  18. 奉劝那些想涨工资的程序员,这些 IT 大神们都在用的网站,你越早知道越好(建议收藏)!!...
  19. WordPress 元老 Alex King 逝世
  20. App上架到各大安卓应用***流程

热门文章

  1. 输入法画面_搜狗输入法去广告版,流畅再无弹窗打扰
  2. 2021-03-02 英文写作中的“但是”
  3. 设计模式整理之简单工厂
  4. 第一次写购物车,甚是简陋。
  5. Linux系统中fflush,sync,syncfs,fdatasync,fsync的比较
  6. oracle学习之三--多表查询
  7. 第一个 Windows 应用程序
  8. 浅谈vue,小程序,react基础绑定值
  9. 初识powershell、nuget powershell 调试
  10. select下拉列表选中后,跳转新链接