该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include /* malloc()等 */

#include

#include

#include /* exit() */

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define OVERFLOW -2

typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */

typedef int Boolean; /* Boolean是布尔类型,其值是TRUE或FALSE */

typedef int SELemType;

typedef int Status; /* 定义栈顶元素类型,此句要在c3-1.h的前面 */

typedef struct Node

{

SELemType data;

struct Node *next;

}Node,*LinkStackPtr;

typedef struct LinkStack

{

LinkStackPtr top;

int count;/*记录链栈的元素个数*/

}LinkStack; /* 链栈 */

/* 链栈的基本操作(9个) */

Status InitStack(LinkStack *S)

{ /* 构造一个空栈S */

LinkStackPtr p;

p=(LinkStackPtr)malloc(sizeof( Node));

if(!p)

exit(OVERFLOW); /* 存储分配失败 */

p->next=NULL;

S->top=p;

S->count=0;

return OK;

}

Status ClearStack(LinkStack *S)/*清空链栈*/

{

LinkStackPtr p;

while(S->top)

{

p=S->top;

S->top=S->top->next;

S->count--;

free(p);

}

return OK;

}

Status DestroyStack(LinkStack *S)

{ /* 销毁栈S,S不再存在 */

ClearStack(&*S);

free(S);

return OK;

}

Status StackEmpty(LinkStack S)

{ /* 若栈S为空栈,则返回TRUE,否则返回FALSE */

if(S.top)

return TRUE;

else

return FALSE;

}

int StackLength(LinkStack S)

{ /* 返回S的元素个数,即栈的长度 */

return S.count;

}

Status GetTop(LinkStack S,SELemType*e)

{ /* 若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR */

if(!S.top) return ERROR;

*e=S.top->data;

return OK;

}

Status Push(LinkStack *S,SELemType e)

{ /* 插入元素e为新的栈顶元素 */

LinkStackPtr p=(LinkStackPtr)malloc(sizeof(Node));

p->data=e;

p->next=S->top;

S->top=p;

S->count++;

return OK;

}

Status Pop(LinkStack *S,SELemType *e)

{ /* 若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR */

LinkStackPtr p;

if(!S->top) return ERROR;

p=S->top;

S->top=S->top->next;

S->count--;

free(p);

return OK;

}

Status visit(SELemType a)

{

printf("%d",a);

return OK;

}

Status StackTraverse(LinkStack S)

{ /* 从栈底到栈顶依次对栈中每个元素调用函error C2081: 'SElemType' : name in formal parameter list illegal数visit() */

LinkStackPtr p;

p=S.top;

while(p)

{

visit(p->data);

p=p->next;

}

printf("\n");

return OK;

}

int main()

{ int i;

SELemType e;

LinkStack s;

if(InitStack(&s))

for(i=1;i<=10;i++)

Push(&s,i);

printf("压栈操作后,栈中元素为:\n");

StackTraverse(s);

Pop(&s,&e);

printf("出栈操作后,弹出的元素为:%d\n",e);

Pop(&s,&e);

printf("再次出栈操作后,弹出的元素为:%d\n",e);

printf("Push将刚刚弹出的元素%d再次压入栈中\n");

Push(&s,e);

printf("StackEmpty判断栈是否为空:%d(1:是 0:不是)\n",StackEmpty(s));

GetTop(s,&e);

printf("GetTop当前的栈顶元素为:%d\n",e);

printf("StackLength:当前的栈的长度为:%d\n",StackLength(s));

ClearStack(&s);

printf("ClearStack栈清空后,StackEmpty栈是否为空:%d(1:是 0:不是)%d",StackEmpty(s));

DestroyStack(&s);

printf("DestroyStack栈销毁");

return 0;

}

有没有检查c语言编译错误的软件,求大佬解答,为什么这个程序编译软件检查不出错误...相关推荐

  1. c语言补全程序,跪求高手解答简单的程序补全题~!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 英勇的你不断疯狂的射击天上的幽灵,这些太空怪物也毫不留情地还击,逼得你只好左闪右闪地躲,但是你仍奋战不懈,穿梭于枪林弹雨之中,直到你消灭所有的幽灵,或者是 ...

  2. python 10053_python 写的selenium脚本不能循环,循环时会报 [WinError 10053] 你的主机中的软件中止了一个已建立的连接。错误,求大佬解答下...

    用python写了一段自动化脚本,在循环的时候报ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接.错误,第一次执行没有问题,就是 ...

  3. c语言链表萌新,萌新一枚,关于链表问题求大佬解答

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 代码如下 #include #include #include struct student { int num; float score; struct ...

  4. exchange邮箱一直提示密码错误,密码是正确的,求大佬解答

  5. pcl的安装错误和高翔第5讲程序编译错误recipe for target 'all' failed

    今天编译程序的时候 遇到了这个错误: Makefile:149: recipe for target 'all' failed 之前其实安装pcl时也遇到过,但是以为是资源或者一些小原因,就只是照着网 ...

  6. 单片机c语言编译过程,单片机C程序编译、执行过程

    1.编写C代码: 1)预编译代码 2)定义及声明变量 3)定义及声明函数 4)编写程序代码(主函数MAIN) 2.编译器编译: 1) 预处理 此时编译器会扫描一个一个的C源文件,如果发现#includ ...

  7. c语言坐标海伦公式,C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积...

    导航:网站首页 > C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积 C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积 匿名网友: 程序已 ...

  8. 手机程序安装时几种有错误提示的解决办法

    错误提示一:证书过期 问题说明:软件证书过期. 解决办法:1:把手机时间调到证书的期限内(把手机时间往前调几个月)再安装,安装完毕后调回正确时间                            ...

  9. 抛出错误_不用try catch,如何机智的捕获错误

    这是多个feature组合使用后实现的神奇效果,在React源码中被广泛使用. 当我读源码看到这里时,心情经历了: 懵逼 -- 困惑 -- 沉思 -- 查文档 -- 豁然开朗 看完此文,相信你也会发出 ...

最新文章

  1. HLS协议及java切片相关
  2. java c c 的应用_javac 简单应用
  3. Go interface 操作示例
  4. stopped状态的进程 top 命令_30 个实例详解 TOP 命令!
  5. 实现简单的shell sed替换功能
  6. Windows负载机JVM 远程监控Linux服务器下tomcat
  7. 高级参数绑定(数组和List绑定)
  8. html文件调整表格边框的属性,css怎么设置表格边框?
  9. JAVA创建内部类对象
  10. cad画流程图的插件_PIDCAD工艺流程图绘图软件
  11. svn: E230001: Server SSL certificate verification failed: certificate issued for a different hostnam
  12. 禁用 SQL 游标,告诉你外面听不到的原因【内含福利】
  13. Android 获取/设置:窝蜂移动数据网络状态
  14. 【数据分析与可视化】股票市场分析实战之历史趋势分析
  15. CSS第7章上机练习1(制作QQ会员页面导航)
  16. iOS - 内存管理
  17. 枫叶蓝代码生成工具 和对服装行业的一些感悟
  18. (转)ibatis Tips 之 java.util.Map作为parameterClass和resultClass
  19. TTL、RS232、485到底能传输多远距离?
  20. a轮融资计划书PPT模板

热门文章

  1. 合并两个链表数据结构c语言,合并两个链表.
  2. hive分区用2个字段有何限制_[特性]Hive动态分区功能使用
  3. qc35 说明书_使用Bose QC35 2年的心得 | 迟而不迟的深度体验 | 文附佩戴效果照片...
  4. sql server修改字段编码格式_关于MySQL如何修改character_set_client的编码问题
  5. ruby中!!_Ruby反向! 功能
  6. 使用 Redis 如何实现查询附近的人?「视频版」——面试突击 003 期
  7. Oracle plsql 月历
  8. Oracle 创建表 练习题
  9. java+包装类,装箱和拆箱_Java包装类,装箱和拆箱详解
  10. 精通ASP.NET MVC ——辅助器方法