c语言用数组实现栈的插入,C语言静态数组实现栈操作
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
#define STACK_TYPE int
#define STACK_SIZE 100
#if 1
int top_element = 0;
STACK_TYPE stack[STACK_SIZE];
void push(STACK_TYPE value);
void pop(void);
STACK_TYPE top();
STACK_TYPE EEE();
STACK_TYPE is_full();
STACK_TYPE show_stack();
void push(STACK_TYPE value)
{
assert(!is_full());
top_element += 1;
stack[top_element]=value;
}
void pop(void)
{
assert(!EEE());
printf("pop()函数调用栈顶的值=%d\n", stack[top_element]);
top_element -= 1;
}
STACK_TYPE top()
{
assert(!EEE());
return stack[top_element];
}
STACK_TYPE EEE()
{
return top_element ==0;
}
STACK_TYPE is_full()
{
return top_element ==STACK_SIZE;
}
STACK_TYPE show_stack()
{
assert(!EEE());
int n = top_element;
while (top_element>0)
{
printf("栈元素%d=%d\n", top_element,top());
stack[top_element--];
}
top_element = n;//top_element = top_element +n;
return stack[top_element];
}
int main()
{
int n,m;
int i=100;
while (1)
{
printf("1.输入栈顶元素\n");
printf("2.删除栈顶元素\n");
printf("3.显示栈顶元素\n");
printf("4.显示所有栈元素\n");
printf("5.退出程序\n");
//scanf("%d", &n);
scanf("%d", &m);
switch (m)
{
case 1:
{
scanf("%d", &n);
int*p = (int*)malloc(sizeof(int)*n);
*p = n;
push(*p);
}
break;
case 2:
pop();
getchar();
break;
case 3:
printf("栈顶元素的值=%d\n",top());
getchar();
break;
case 4:
show_stack();
getchar();
break;
case 5:
exit(0);
break;
}
getchar();
//getchar();
system("cls");
}
//push(95);
//push(102);
//pop();
//printf("pop()函数调用后栈顶的值=%d\n", top());
getchar();
return 0;
}
c语言用数组实现栈的插入,C语言静态数组实现栈操作相关推荐
- VBA 不能给数组赋值,其实只是不能给静态数组整体赋值
1 问题:VBA报错:不能给数组赋值! 其实并不是 所有数组不能赋值 其实是不能给静态数组,整体赋值! 只是因为当前处理的是一个静态数组 2 什么是静态数组 (只是大小静态!! 赋值可变!) 2.1 ...
- 数据结构栈(顺序栈、链栈、插入push、删除pop)、队(循环队,链队、入队push,出队pop)知识点梳理
数据结构栈知识点梳理 一 栈的定义 栈(stack)是限定仅在表尾进行插入和删除操作的线性表 不含任何元素的栈称为空栈 允许插入和删除的一端成为栈顶(top),另一端称为栈底(bottom) 具有LI ...
- 数据结构学习笔记——栈的基本知识和顺序存储结构实现栈(顺序栈)
目录 一.栈 (一)栈的概念 (二)栈的排列 (三)共享栈 (四)栈的常见应用 二.顺序栈的定义 三.顺序栈的初始化 四.判断顺序栈是否为空栈 五.判断顺序栈是否为满栈 六.进栈(插入操作) 七.出栈 ...
- Delphi 指针, 静态数组, 动态数组
https://www.cnblogs.com/shangdawei/archive/2013/04/30/3051656.html指针 : 指针是一个特殊的变量, 它里面存储的数值被解释成为内存里的 ...
- Java动态数组和静态数组详解
前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 数组: 概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致,不能出现混合类型 1.什么数据类型就只能储存什么数据元素,比 ...
- 【C++】细说C++中的数组之“静态”数组
[fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 前言 数组是C/C++以及各种编程语言中最常用的一种数据结构,了解数组的性质并且学会使用数组 ...
- c语言中栈区运用原理形象图,C语言实现使用动态数组来构造栈结构
我在面前一篇博客<C语言实现使用静态数组来构造栈结构>中使用了静态数组来模拟栈的操作.静态数组的大小是在代码中写死的.是存储在用户栈上面的,使用起来不灵活.在这篇博客中我会使用动态数组来构 ...
- 栈的删除函数c语言,顺序栈的插入和删除
<顺序栈的插入和删除>由会员分享,可在线阅读,更多相关<顺序栈的插入和删除(5页珍藏版)>请在人人文库网上搜索. 1.实验四顺序栈的插入和删除姓名:学号: 日期:一.实验目的: ...
- 插入栈顶元素c语言,详解数据结构之顺序栈的基本操做(C语言描述)
1.栈是线性表的特例,所以栈的顺序存储其实也就是线性表顺序存储的简化,咱们称之为顺序栈,线性表是采用数组来实现的,所以顺序栈也采用数组来实现. 2.栈的结构定义:elementype类型根据实际状况而 ...
最新文章
- pycharm配置python解释器_Python大佬手把手教你进行Pycharm活动模板配置
- 在web html页面中,打印、预览当前页面
- python装饰器类-python_类装饰器
- 递归二分法php,PHP基于二分法实现数组查找功能示例【循环与递归算法】
- AT串口抽象层的设计思路及代码实现
- Spring Boot详细学习地址转载
- java元婴期(21)----java进阶(spring(5)---事务管理AOP事务管理(全自动)spring整合Junit)
- spring boot配置文件:application.yml (yml与properties文件优缺对比)
- 挂机脚本_叠猫猫逛店铺挂机脚本,每天稳定50次
- 一个SAP顾问2018年的回顾
- java中注解的解析_全面解析Java中的注解与注释
- 面试题22. 链表中倒数第k个节点
- 从容 IT 人生路,开发工具伴我行——“葡萄城 30 周年”征文
- leetcode 394.字符串解码 dfs
- hdu 6088 Rikka with Rock-paper-scissors (2017 多校第五场 1004) 【组合数学 + 数论 + 模意义下的FFT】...
- 支持树型的GridView控件
- ios判断点击的坐标点
- 【项目实战】Python基于RFM模型和K-Means聚类算法进行航空公司客户价值分析
- css特效滑动导航栏,教你做个可爱的css滑动导航条
- DJFocus是个什么东东