当前位置:我的异常网» C语言 » 关于栈的有关问题。为什么Push函数top始终是NULL

关于栈的有关问题。为什么Push函数top始终是NULL

www.myexceptions.net  网友分享于:2014-04-25  浏览:7次

关于栈的问题。为什么Push函数top始终是NULL?

#include

#include

#include

typedef char elemtype;

typedef struct stacknode{

elemtype data;

struct stacknode *next;

}StackNode;

//建栈

StackNode *InitStack(StackNode *top){

top=(StackNode *)malloc(sizeof(StackNode));

top=NULL;

return top;

}

int Judge(StackNode *top){

if(top==NULL)

{

printf("建栈成功.\n");

return 1;

}

else

{

printf("建栈失败!\n");

return 0;

}

}

//进栈

int Push(StackNode *top){

StackNode *p,*q;

char ch;

while(ch=getchar()!='#'){

if(ch=='{'||ch=='('||ch=='['||ch=='

{

p=(StackNode *)malloc(sizeof(StackNode));//如果是左边的,进栈。

p->next=NULL;

p->data=ch;

p->next=top;

top=p;

}

if(ch=='}'||ch==')'||ch==']'||ch=='>')

{

if(top==NULL)

{

printf("栈空.\n");//如果是右边的且top=NULL栈空,说明不平衡。还有符号没有平衡。

return 0;

}

else

{

switch(ch)

{

case '{':if(top->data!='}')//如果是右边的且top!=NULL出栈

return 0;

else

break;

case '(':if(top->data!=')')

return 0;

else

break;

case '[':if(top->data!=']')

return 0;

else

break;

case 'data!='>')

return 0;

文章评论

C语言栈的push函数,关于栈的有关问题。为什么Push函数top始终是NULL相关推荐

  1. 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )

    文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...

  2. java的min函数_Java语言实现包含min函数的栈

    package stack; import java.util.ArrayList; /** * 实现包含min函数的栈 * @author DHC * @param */ public class ...

  3. 【C 语言】内存四区原理 ( 栈内存与堆内存对比示例 | 函数返回的堆内存指针 | 函数返回的栈内存指针 )

    文章目录 一.函数返回的堆内存指针 二.函数返回的栈内存指针 一.函数返回的堆内存指针 在 main 主函数中 , 调用 get_memory 子函数 , 返回 malloc 初始化的堆内存 , 可以 ...

  4. c语言 栈结构存放数据类型,数据结构——栈的详解

    栈和队列是两种重要的线性结构,从数据结构的角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表的子集.他们是操作受限的线性表,因此,可称为限定性的数据结构.但从数据类型角度看,他们是和线 ...

  5. 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解

    目录 一.栈 0.栈的基本概念 1.栈的实现 2.栈与递归 3.Hanoi塔问题 二.队列 0.队列的基本概念 1.队列的实现 2.循环队列 2.1循环队列的相关条件和公式: 3.链队列 4.链队列完 ...

  6. 【剑指offer】登峰造极--包含min函数的栈

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:439567 本题知识点: 栈 算法知识视频讲解 题目描述 定义栈的数据结构,请在该类型中实现一个能够 ...

  7. 剑指offer:面试题30. 包含min函数的栈

    题目:包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). MinStack min ...

  8. 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java

    <LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...

  9. 设计包含min函数的栈

    2019独角兽企业重金招聘Python工程师标准>>> 题目: 设计一个栈,使得PUSH.POP以及GetMin(获取栈中最小元素)能够在常数时间内完成. 分析: 很刚开始很容易想到 ...

  10. 含有min()函数的栈,各种操作时间复杂度为O(1)

    设计一个栈,定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素.要求函数min.push以及pop的时间复杂度都是O(1). 声明:思想非原创 #include <iostream& ...

最新文章

  1. 清华旷视:让VGG再次伟大!
  2. [C#] C#访问数据库(SQL Server版本)
  3. python最大堆_用Python实现最大堆
  4. 嵌入式_makefile简单语法介绍
  5. 按代码行衡量编程进度就像按重量衡量飞机制造进度一样
  6. JAVA 8:Lambdas表达式初体验
  7. 开始学习 PixiJS
  8. SQL Server insert的触发器
  9. 【更新】PDF控件Spire.PDF V3.9.463发布 | 修复多个PDF转换bug
  10. 桌游跑团用roll点器,可以自己设置色字的数量和种类
  11. Deformable Convolutional Networks论文翻译——中文版
  12. 解除网页无法选择文字_无法复制
  13. 人民币符号输入的几种方法
  14. 电机的matlab仿真实例,电机控制Matlab仿真模型
  15. Win10系统修改时间设置
  16. 49个python经典电子书
  17. hive 正则表达式-regexp
  18. 运营精益创业组织的柔术
  19. 《CSAPP》(第3版)答案(第六章)(一)
  20. 大雪花U盘启动盘制作工具怎么样

热门文章

  1. Eclipse3.2安装简介
  2. Disruptor(无锁并发框架)-发布
  3. iphone 内部函数使用 (函数可能无法响应的部分解决方案)
  4. mui ajax请求 登录
  5. GitHub 引入缺陷和Pull Request 模版,并支持直接上传文件
  6. 用phpQuery像jquery一样解析html代码
  7. 【编程题目】求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句...
  8. CentOS 6.2安装配置LAMP服务器(Apache+PHP5+MySQL)
  9. [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  10. 【Java基本功】很多人经常忽视的Java基础知识点