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语言静态数组实现栈操作相关推荐
- c语言多维数组指针地址讲解,C语言入门之多维数组的指针变量
一.多维数组地址的表示方法 设有整型二维数组a[3][4]如下: 0 1 2 3 4 5 6 7 8 9 10 11 设数组a的首地址为1000,各下标变量的首地址及其值如图所示. 在前面曾经介绍过, ...
- Java语言程序设计 上机实验2 掌握Java的基本语言成分和流程控制语句。 掌握Java中数组的使用,理解引用数据类型。 掌握String类的使用。...
Java语言程序设计 上机实验2 实验目的: 掌握Java的基本语言成分和流程控制语句. 掌握Java中数组的使用,理解引用数据类型. 掌握String类的使用. 实验内容: 注:标(*)为选做内 ...
- c语言定义不定长数组初始化_大学C语言期末考试练习题(带详解答案)(1)
链接:https://pan.baidu.com/s/1d2Bb1vNTyBNpFGneIAicVw 提取码:y7uw 单项选择题 C语言的基本单位是 函数 1.(A )是构成C语言程序的基本单位. ...
- java静态链表_静态链表及其创建(C语言实现)
<顺序表和链表优缺点>一节,我们了解了两种存储结构各自的特点,那么,是否存在一种存储结构,可以融合顺序表和链表各自的优点,从而既能快速访问元素,又能快速增加或删除数据元素. 静态链表,也是 ...
- c语言动态的申请矩阵存储空间,C语言中二维数组如何申请动态分配内存
C语言中二维数组如何申请动态分配内存: 使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小 #include #include int main() { int **a; int i ...
- 数组与字符串长度 — C语言经典方法
阅读提示:文章比较冗长,若为了快速做题,请用常规方法sizeof和方法六计数器即可,其他对完成作业都没什么特别的意义,最后感谢您的点击与阅读- 文章目录 数组与字符串 1 数组 1.1 静态数组 (1 ...
- C语言入门系列之6.一维和二维数组
数组 一.数组的概念 二.一维数组的定义与引用 1.一维数组定义 注意事项 常见错误 扩展:一维数组在内存中的存放 2.一维数组的引用 注意事项 3.一维数组的初始化 初始化赋值 动态赋值 三.二维数 ...
- 【C】C语言函数(包括:函数编写位置、数组作函数实参)
函数概述 函数的分类 函数是C语言程序基本的组成单位,每个程序有且只能有一个主函数(main()),其他的函数都是子函数.按照不同的额分类标准,函数可以分成不同的类: 函数从是否有返回值,可以将函数分 ...
- c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析
本文约1600字,主要讲了C语言基础之数组.数组又可分为数值数组.字符数组.指针数组.结构数组等各种类别.本文主要讲了数组的基础概念,一维数组的定义和引用. 带你进入C语言的世界,入门C语言,后边将持 ...
- Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言)
Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言) ** 题目: ** 给你一个目标数组 target 和一个整数 n.每次迭代,需要从 list = {1,2 ...
最新文章
- 手撕一个spirng IoC的过程
- Linux确定命令的执行时长,Linux 历史命令显示执行时间
- 手机的次世代竞争年代
- linux下查看进度命令,在Linux系统中使用Coreutils Viewer显示命令运行进度
- Python爬虫的经典多线程方式,生产者与消费者模型
- 如果关闭一个窗体后激活另一个窗体的事件或方法
- 【Spark】SparkStreaming的应用及其原理
- java并发编程实战学习(3)--基础构建模块
- 【原】Docker学习_安装篇(一)
- java 压缩包添加文件,如何在Java中向现有zip文件添加条目?
- html5 自带video内存泄露_C++ 如何避免内存泄露?
- 【转】编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程
- 计算机更新有用吗,驱动有必要升级吗_n卡驱动有必要更新吗
- 牢记公式,ardupilot EKF2就是纸老虎(五)!
- 飞桨领航团西安回顾|技术干货大厂offer独家经验分享
- opengl学习笔记
- 计组实验3 mips冒险之流水线冒险
- css规则定义的分类,.css规则定义
- 活动实录 | 京东金融PE谈如何颠覆应用运维认知
- matlab中subplot函数用法
热门文章
- Hyper-V网络虚拟化--VM之间拷贝速度慢
- activity 的返回按钮
- 第一届数据库***大赛(欢迎大家共同讨论,发表自己的见解)
- 8.业务架构·应用架构·数据架构实战 --- 技术方案书
- 5.微服务:从设计到部署 --- 事件驱动数据管理
- 6.UNIX 环境高级编程--系统数据文件和信息
- .net core平台使用遇到的坑
- xxx系统的6大质量属性战术
- uartz Spring与Spring Task总结
- 整合Solr到Tomcat服务器,并配置IK分词