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程序设计语言练习1-23 编写一个删除C语言程序中所有的注释语句...
C程序设计语言练习1-23 编写一个删除C语言程序中所有的注释语句,要正确处理带引号的字符串与字符常量,以C语言中,注释不允许嵌套. 本程序运行后,将要求用户输入一个当前目录下的C源码程序文件名,读取 ...
- VBA 不能给数组赋值,其实只是不能给静态数组整体赋值
1 问题:VBA报错:不能给数组赋值! 其实并不是 所有数组不能赋值 其实是不能给静态数组,整体赋值! 只是因为当前处理的是一个静态数组 2 什么是静态数组 (只是大小静态!! 赋值可变!) 2.1 ...
- c语言求链表节点的删除,C语言实现链表节点的删除
对链表节点进行增删改查是最基本的操作,这篇博客将会来实现对节点的删除.其他的操作可参考<c语言实现链表的基本操作>这篇博客.删除某个节点有两个类型: (1)删除i某个位置的节点: (2)判 ...
- c语言实现将字符串首尾*删除,C语言实现Trim()函数:删除字符串首尾空格。...
如:" cd dwq ",删除后为"cd dwq". 思路:定义两个指针,一个指向字符串的第一个字符,向后遍历,找到第一个不为空格的字符.另一个指针指向字符 ...
- 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语言最基本的数据结构链式结构体做了解析,不清楚的可以回顾一下.本章节主要针对于C语言的基础数据结构栈做以解析. 数据结构之栈 栈(stack)又名堆栈,它是一种运算受限的线性表.限定仅 ...
- 删除数组中重复元素(C语言)
编写函数,删除数组中所有的重复元素,使数组变成一个集合,函数返回集合中元素的个数. 书上习题 #include<stdio.h> int set(int a[],int n) {int i ...
最新文章
- ASP.Net中省市级联有关
- java反射三种_Java反射
- Box-Cox(python实现)
- Angular 应用解决跨域访问的问题
- 后台管理系统框架bootstrap中文版
- android4.0蓝牙使能的详细解析 (转载)
- 算法导论12.2节习题解答
- tm1639c语言程序,51单片机各种汇编延时子程序整理汇总
- python数据处理分析实训心得总结_python数据分析的总结
- 3D游戏案例:滚动天空(超低配版)
- 矩阵的乘法与利用矩阵求解线性方程组
- 贯头山酒——中华酒文化的源头之一
- Qt中的矩阵计算库eigen
- GPGPU台积电7nm制程
- mevan 的常用命令和参数解释
- 暗影精灵5风扇怎么调_惠普暗影精灵5内部结构是怎么样的 他的散热效果好不好呢...
- 什么是深度学习?有哪些相关书籍推荐?
- 初学5之坦克要求(做出坦克被子弹击中时的爆炸效果)
- 微软 Win 10X 系统非常震撼
- Android应用主界面底部菜单实现