首页 > 其他分享 >堆栈使用

堆栈使用

时间:2024-09-24 23:12:25浏览次数:7  
标签:index int 使用 printf 堆栈 array data Stack

栈stack 存在内存高地址部分
类似压子弹 先进后出 ,后进先出
printf("Element at top of the stack: %d\n" ,peek());
printf("Elements: \n");

// print stack data
while(!isempty()) {
int data = pop();
printf("%d\n",data);
}

printf("Stack full: %s\n" , isfull()?"true":"false");
printf("Stack empty: %s\n" , isempty()?"true":"false");

return 0;
}
上面的程序代码输出如下:

Element at top of the stack: 15
Elements:
15
12
1
9
5
3
Stack full: false
Stack empty: true

堆heap 存在内存地址低地址 类似完全二叉树
在堆上分配内存
array = (int *)malloc(n * sizeof(int));
free(array)
检查1:申请后 空间为空 正常
检查2:是否越界
// 边界检查访问
int getElement(IntArray *array, int index) {
if (index < 0 || index >= array->size) {
printf("Index out of bounds!\n");
exit(EXIT_FAILURE);
}
return array->data[index];
}解析
//为访问元素索引
类似土堆 二进制表

标签:index,int,使用,printf,堆栈,array,data,Stack
From: https://www.cnblogs.com/h0808/p/18430296

相关文章

  • vue+谷歌地图Google Map的使用(四)
    前言本篇文章,主要是为了解决文章一内容的实现在实际项目中造成的性能BUG一、文章一在实际项目运用时的问题文章中,主要是讲了如何在项目中引入谷歌地图的库,并在相应组件的DIV中展示出来。但是,要注意~其中的例子只是一个简单的vueDEMO效果,并不涉及多个组件,所以在当时,是将......
  • MySQL 中存储过程参数的设置与使用
    在MySQL数据库中,存储过程是一组预先编译好的SQL语句集合,可以接受参数并返回结果。使用存储过程可以提高数据库的性能和可维护性,同时也可以减少网络流量和代码重复。那么,如何在MySQL中设置和使用存储过程的参数呢?本文将为你详细介绍。一、存储过程参数的类型在MySQL中,存储......
  • MySQL 中存储过程参数的设置与使用
    《MySQL中存储过程参数的设置与使用》在MySQL数据库中,存储过程是一组预先编译好的SQL语句集合,可以接受参数并返回结果。使用存储过程可以提高数据库的性能和可维护性,同时也可以减少网络流量和代码重复。那么,如何在MySQL中设置和使用存储过程的参数呢?本文将为你详细......
  • TVbox下载、安装使用、最新源合集分享!【全网最全】
    TVbox影视源接口的导入方法(网络导入)打开TVbox首页之后,点击设置点击配置地址,在弹出的配置窗口里面,填写影视源接口地址,确定即可。配置完成,返回首页,等待爬虫加载完毕,这个时候,你可以使用搜索功能进行影片的搜索,还可以再次点击“设置”,切换首页的数据源。在配置地址的弹窗......
  • scrapy初步使用
    setting#Scrapysettingsfordemoproject##Forsimplicity,thisfilecontainsonlysettingsconsideredimportantor#commonlyused.Youcanfindmoresettingsconsultingthedocumentation:##https://docs.scrapy.org/en/latest/topics/settings.htm......
  • 网络设置(ip命令使用)
    新安装系统的服务器配置网络,有些不默认支持network的用第二种,(如:RockyLinux8.10)最小安装还没有dhcp客户端dhclient。主要讲支持network服务的。一.配置网络1.最基础的方法(支持network的如:centos)①修改配置文件/etc/sysconfig/network-scripts/ifcfg-*vim/etc/sysconfig/netw......
  • Docker Desktop (WSL)部署MySQL使用Navicat 16 for MySQL远程连接
    DockerDesktop(WSL)部署MySQL使用Navicat16forMySQL远程连接1.docker拉取镜像dockerpullmysql2.查看镜像dockerimages3.启动MySQL实例dockerrun-d-p3307:3306--name=mysql-eMYSQL_ROOT_PASSWORD=123456mysql命令详解参数详解-d在后台运行容......
  • Anaconda的使用命令,方便python的管理
    pythonpython是世界上最好的编程语言(有杠精,你就对。)python的领域涉及了AI,大数据,网络爬虫,运维,开发等等方面。python的环境由解释器和包组成。1、python的解释器Python解释器是Python环境的本体,也就是python.exe文件。我们需要在环境变量的路径中将python.exe所在的目录添加上,这......
  • 如何在不模糊脊线的情况下增强指纹图像?我正在使用 Django
    如何在不模糊脊线的情况下增强指纹图像?我正在使用Django。我目前正在使用OpenCV开发一个指纹增强项目,当我的代码产生结果时,指纹图像中的脊线变得模糊。这是我的代码importcv2importnumpyasnpimportmathimportfingerprint_enhancer#Ensurethismoduleisavai......
  • CCS使用教程(工程导入,连接DSP,烧录)
    如果一些窗口不小心关闭了,可以在CCS状态栏View一栏中重新打开,然后固定即可。一、导入工程在ProjectExplorer的空白区域右键,import—>CCSProject,然后找到CCS工程所在路径,出现如下界面说明路径正确导入成功后,找到主文件,后缀.c,点击编译用的锤子。如果无报错,会出现****B......