C语言栈的push函数,关于栈的有关问题。为什么Push函数top始终是NULL
当前位置:我的异常网» 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相关推荐
- 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )
文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...
- java的min函数_Java语言实现包含min函数的栈
package stack; import java.util.ArrayList; /** * 实现包含min函数的栈 * @author DHC * @param */ public class ...
- 【C 语言】内存四区原理 ( 栈内存与堆内存对比示例 | 函数返回的堆内存指针 | 函数返回的栈内存指针 )
文章目录 一.函数返回的堆内存指针 二.函数返回的栈内存指针 一.函数返回的堆内存指针 在 main 主函数中 , 调用 get_memory 子函数 , 返回 malloc 初始化的堆内存 , 可以 ...
- c语言 栈结构存放数据类型,数据结构——栈的详解
栈和队列是两种重要的线性结构,从数据结构的角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表的子集.他们是操作受限的线性表,因此,可称为限定性的数据结构.但从数据类型角度看,他们是和线 ...
- 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解
目录 一.栈 0.栈的基本概念 1.栈的实现 2.栈与递归 3.Hanoi塔问题 二.队列 0.队列的基本概念 1.队列的实现 2.循环队列 2.1循环队列的相关条件和公式: 3.链队列 4.链队列完 ...
- 【剑指offer】登峰造极--包含min函数的栈
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:439567 本题知识点: 栈 算法知识视频讲解 题目描述 定义栈的数据结构,请在该类型中实现一个能够 ...
- 剑指offer:面试题30. 包含min函数的栈
题目:包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). MinStack min ...
- 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java
<LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...
- 设计包含min函数的栈
2019独角兽企业重金招聘Python工程师标准>>> 题目: 设计一个栈,使得PUSH.POP以及GetMin(获取栈中最小元素)能够在常数时间内完成. 分析: 很刚开始很容易想到 ...
- 含有min()函数的栈,各种操作时间复杂度为O(1)
设计一个栈,定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素.要求函数min.push以及pop的时间复杂度都是O(1). 声明:思想非原创 #include <iostream& ...
最新文章
- 清华旷视:让VGG再次伟大!
- [C#] C#访问数据库(SQL Server版本)
- python最大堆_用Python实现最大堆
- 嵌入式_makefile简单语法介绍
- 按代码行衡量编程进度就像按重量衡量飞机制造进度一样
- JAVA 8:Lambdas表达式初体验
- 开始学习 PixiJS
- SQL Server insert的触发器
- 【更新】PDF控件Spire.PDF V3.9.463发布 | 修复多个PDF转换bug
- 桌游跑团用roll点器,可以自己设置色字的数量和种类
- Deformable Convolutional Networks论文翻译——中文版
- 解除网页无法选择文字_无法复制
- 人民币符号输入的几种方法
- 电机的matlab仿真实例,电机控制Matlab仿真模型
- Win10系统修改时间设置
- 49个python经典电子书
- hive 正则表达式-regexp
- 运营精益创业组织的柔术
- 《CSAPP》(第3版)答案(第六章)(一)
- 大雪花U盘启动盘制作工具怎么样
热门文章
- Eclipse3.2安装简介
- Disruptor(无锁并发框架)-发布
- iphone 内部函数使用 (函数可能无法响应的部分解决方案)
- mui ajax请求 登录
- GitHub 引入缺陷和Pull Request 模版,并支持直接上传文件
- 用phpQuery像jquery一样解析html代码
- 【编程题目】求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句...
- CentOS 6.2安装配置LAMP服务器(Apache+PHP5+MySQL)
- [2019.2.28]BZOJ4033 [HAOI2015]树上染色
- 【Java基本功】很多人经常忽视的Java基础知识点