C语言实现栈代码
/*
栈的特性:先进后出。
栈在计算语言处理和将递归算法改为非递归算法等方面起着非常重要的作用。
*/ #define INITSIZE 100 //储存空间的初始分配量
typedef int ElemType;
typedef struct
{
int top; //栈顶指针
ElemType *base; //存放元素的动态数组空间
int stacksize; //当前栈空间的大小
}sqstack; //初始化操作
//创建一个空栈,栈顶指针top初始化为0
void initstack(sqstack *S)
{
s->base = (ElemType *)malloc(INITSIZE * sizeof(ElemType)); //申请存储空间
s->top = ; //栈顶指针初始值为0
s->stacksize = INITSIZE; //容量为初始值
} //求栈长操作
int getlen(sqstack *S)
{
return (S->top);
} //取栈顶元素操作
//将栈顶元素值存入e指向的内存单位,top值不变
int gettop(sqstack *S,ElemType *e)
{
if(S->top==) return ; //栈空,返回0
*e = S->base[S->top-]; //栈顶元素值存入指针e所指向的内存单元
return ;
} //压栈操作
//将入栈元素x存入top所指的位置上,然后栈顶指针top增1
int push(sqstack *S,ElemType x)
{
if(S->top == S->stacksize) //若栈满,增加一个存储单元
{
S->base = (ElemType *)realloc(S->base,(S->stacksize+)*sizeof(ElemType));
if(!S->base) return ;
S->stacksize++;
}
S->base[S->top++] = x;
return ;
} //弹栈操作
//先将栈顶指针top减1,再将top单元中的元素存入指针e所指向的内存单元
int pop(sqstack *S,ElemType *e)
{
if(S->top==)return ;
*e = S->base[--S->top];
return ;
} //判栈S是否为空
int emptystack(sqstack *S)
{
if(S->top==) return ;
else return ;
} //输出栈操作
void list(sqstack *S)
{
int i;
for(i=S->top-;i>=;i--)
{
printf("%4d",S->base[i]);
}
printf("\n");
}
C语言实现栈代码的更多相关文章
- C语言函数调用栈(二)
5 函数调用约定 创建一个栈帧的最重要步骤是主调函数如何向栈中传递函数参数.主调函数必须精确存储这些参数,以便被调函数能够访问到它们.函数通过选择特定的调用约定,来表明其希望以特定方式接收参数.此外, ...
- C语言函数调用栈
C语言函数调用栈 栈溢出(stack overflow)是最常见的二进制漏洞,在介绍栈溢出之前,我们首先需要了解函数调用栈. 函数调用栈是一块连续的用来保存函数运行状态的内存区域,调用函数(calle ...
- 【伯乐在线】最值得阅读学习的 10 个 C 语言开源项目代码
原文出处: 平凡之路的博客 欢迎分享原创到伯乐头条 伯乐在线注:『阅读优秀代码是提高开发人员修为的一种捷径』http://t.cn/S4RGEz .之前@伯乐头条 曾发过一条微博:『C 语言进阶有 ...
- VS2015提示:未安装Style的Visual Studio语言支持,代码编辑Intellisense将不可用。服务器控件的标记Intellisense可能不起作用
一.问题 最近在VS2015打开文件,提示未安装Style的Visual Studio语言支持,代码编辑Intellisense将不可用.服务器控件的标记Intellisense可能不起作用. Int ...
- 小C和小派的缠绵爱情——C语言调用Python代码
我妒忌你的开源,你眼红我的速度,不如我们就在一起吧! --------SJ2050 2019.4.9号更新:实现在未安装python环境的机子上运行调用了python程序的C语言代码! 文章目录 环境 ...
- 《Linux内核分析》week1作业-分析一个简单c语言的汇编代码
1.C语言源码 #include <stdio.h> int g(int x){ ; } int f(int x){ return g(x); } int main(){ )+; } 2. ...
- 4-29 c语言之栈,队列,双向链表
今天学习了数据结构中栈,队列的知识 相对于单链表来说,栈和队列就是添加的方式不同,队列就相当于排队,先排队的先出来(FIFO),而栈就相当于弹夹,先压进去的子弹后出来(FILO). 首先看一下栈(St ...
- 数据结构(c语言版)代码
第1章 绪论 文档中源码及测试数据存放目录:数据结构\▲课本算法实现\▲01 绪论 概述 第一章作为绪论,主要介绍了数据结构与算法中的一些基本概念和术语.对于这些概念术语 ...
- C语言数据结构-栈
一.栈的定义 栈(statck)这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(First In Last Out, FILO).栈只有一个出口,允许新增元素(只能在栈顶上增加). 移出元 ...
随机推荐
- leetcode241 为运算表达式设计优先级
class Solution(object): def diffWaysToCompute(self, input): """ :type input: str :rty ...
- [Flask]通过render_form快捷渲染表单
依赖: Bootstrap-Flask 实例化方式与flask_bootstrap相同. 关于render_form(): Bootstrap-Flask内置了两个用于渲染WTForms表单类的宏,r ...
- ControlTemplate in WPF —— TextBox
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- 阶段3 2.Spring_08.面向切面编程 AOP_5 切入点表达式的写法
写测试类来测试..也不需要整合JUnit了就是个普通的测试类. 我们要看就是有没有给我们真正的实现 记录日志 配置起作用了. 三个方法都调用一下 目前我们的配置只能对saveAccount增强 通常情 ...
- 因修改/etc/ssh权限导致的ssh不能连接异常解决方法
因修改/etc/ssh权限导致的ssh不能连接异常解决方法 现象: $ssh XXX@192.168.5.21 出现以下问题 Read from socket failed: Connection r ...
- kafka代码测试连接
1.发送: package kafka.test; import java.util.Date;import java.util.Properties;import java.util.Random; ...
- Python+requests+excel接口测试
2018-06-14 17:00:13 环境准备: - Python 3.7 - requests库 - xlrd 1.创建Excel文件 2.读取Excel文件 import xlrd clas ...
- canvas基础知识
canvas基础知识 ## CanvasDOM对象 #### 获取绘图环境```canvas.getContext();``` #### 设置宽和高```canvas.width = 500;canv ...
- hbase 查看hfile文件
emp表数据结构 hbase(main):098:0> scan 'emp' ROW COLUMN+CELL row1 column=mycf:depart, timestamp=1555846 ...
- 索引之----mysql单列索引失效的情况
使用的索引名称: 1.隐式转换导致索引失效. 由于表字段定义为vachar类型,但在查询时把该字段作为number类型 以及where条件传给mysql. 2.对索引列进行任何操作(计算(+.-.*. ...