代码编织梦想

2022/9/22
栈(线性表、):
初始化:构造空栈、
销毁:栈存在
判空:栈存在、base==top;
置空:栈存在且非空
进栈;栈存在
出栈:栈存在且非空
栈顶元素:栈存在且非空
栈长:栈存在

存储结构:顺序结构

栈满:top-base == stacksize;

1)构造

//构造
#define MAXSIZE 50
typedef struct {
	int* top;
	int* base;
	int stacksize;
}sqStack;

2)初始化

int InitStack(sqStack &s) {
	//s.base = (int*)malloc(MAXSIZE * sizeof(int));  c语言写法
	s.base = new int[MAXSIZE];
	if (!s.base)exit;
	s.base = s.top;
	s.stacksize = MAXSIZE;
}

3)判空

bool judgeNull(sqStack& s) {
	if (s.base == s.top) {
		return true;
	}
	else {
		return false;
	}
}

4)求栈长

int stacklength(sqStack& s) {
	return s.top - s.base;
}

5)清空栈

void clearStack(sqStack& s) {
	if (s.base)s.base = s.top;
}

6)销毁栈

void destroy_rstack(sqStack& s) {
	if (s.base) {
		delete s.base;
		s.stacksize = 0;
		s.base = s.top = NULL;
	}
}

7)进栈

int Push(sqStack& s,int e) {
	if (s.top - s.base == s.stacksize)return -1;
	//*s.top = e;
	//s.top++;
	*s.top++ = e;
}

8)出栈

int pop(sqStack& s, int &e) {
	if (s.base == s.top)return 0;
	//--s.top;
	//e = *s.top;
	e = *--s.top;
	return e;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_63749236/article/details/127002213

c/c++代码里面读取lua的table-爱代码爱编程

本教程将介绍Lua的栈及基本栈操作,同时还有如何在C/C++代码里面读取Lua的Table。 理解Lua栈 Lua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。 Lua的这个“虚拟栈”解决了C/C++程序与Lua程序通信的两大问题: Lua使用垃圾回收,而

lua教程(三):c语言、c++中调用lua的table示例-爱代码爱编程

从写上一篇Lua的文章到现在,已经过去半月有余了,是时候让自己的Lua状态refresh一下了。本教程将介绍Lua的栈及基本栈操作,同时还有如何在C/C++代码里面读取Lua的Table。 理解Lua栈 Lua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。 Lua的这个“虚拟栈”解

lua的栈及基本栈操作-爱代码爱编程

理解Lua栈 Lua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。 Lua的这个“虚拟栈”解决了C/C++程序与Lua程序通信的两大问题: Lua使用垃圾回收,而C/C++需要手动管理内存。 Lua使用动态类型,而C/C++使用的是静态类型。 因 为

理解lua栈-爱代码爱编程

理解Lua栈 Lua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。 Lua的这个“虚拟栈”解决了C/C++程序与Lua程序通信的两大问题: Lua使用垃圾回收,而C/C++需要手动管理内存。 Lua使用动态类型,而C/C++使用的是静态类型。

熟练使用lua(六)可扩展性1:lua虚拟栈操作,lua的c api_chydison的博客-爱代码爱编程

原文链接:https://blog.csdn.net/mydriverc2/article/details/51134737 Lua在vs2013的配置环境以及C++如何调用lua 理解Lua栈 Lua通过一个“虚拟栈

c语言中怎么编程添加table,Lua教程(三):C语言、C++中调用Lua的Table示例-爱代码爱编程

从写上一篇Lua的文章到现在,已经过去半月有余了,是时候让自己的Lua状态refresh一下了。本教程将介绍Lua的栈及基本栈操作,同时还有如何在C/C++代码里面读取Lua的Table。 理解Lua栈 Lua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。 Lua的这个“虚拟栈”解决

c lua语言教程,Lua教程(三):C语言、C++中调用Lua的Table示例-爱代码爱编程

从写上一篇Lua的文章到现在,已经过去半月有余了,是时候让自己的Lua状态refresh一下了。本教程将介绍Lua的栈及基本栈操作,同时还有如何在C/C++代码里面读取Lua的Table。 理解Lua栈 Lua通过一个“虚拟栈”与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信。 Lua的这个“虚拟栈”解决

数据结构—链栈的操作及实现(CC++)-爱代码爱编程

数据结构—链栈的操作及实现(C/C++) 文章目录 数据结构—链栈的操作及实现(C/C++)1.0初始化定义1.1栈链的结构体定义1.2栈链的初始化1.3判断栈链是否为空1.4栈链的入栈操作1.5栈链的出栈操作1.6求栈链的长度1.7栈链的输出(打印)1.8 C主函数代码1.9 C++主函数代码2.0 C完整代码2.1 C++完整代码2.2运行截

[笔记]Windows核心编程《十六》线程栈-爱代码爱编程

参考部分sesiria大佬的《Windows核心编程》读书笔记十六 线程栈 进程线程及堆栈之间内存分配和关系总结windows内存结构概述(转) 文章目录 前言线程栈变化的几种情况16-1 线程栈的地址空间区域最初创建的样子16-2 即将用尽的栈地址空间区域16-3 已用尽的栈地址空间区域当线程访问最后一个已预定的页面 系统抛出EXCEPTION

c语言之内存模型以及动态内存分配_内存分区ps0、ps1-爱代码爱编程

目录 内存分区模型 C/C++内存开辟  按照程序运行前后分区 程序运行前 代码区 全局区 程序运行后 栈区 堆区 关于栈 栈与静态区(数据段) 动态内存分配 那么使用动态内存的好处在哪? 常见的内存使用方式 动态内存分配函数 malloc函数 free函数 calloc函数 realloc函数 常见动态内存错误