⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stack.c

📁 在定时器中断中做LED的PWM输出 AT89C2051实现A/D转换的C51程序 单片机开发系统 指令系统 程序设计 定时与中断 系统扩展 接口技术 串行口
💻 C
字号:
//堆栈的有关算法

#define MAX  30	// 最多30个元素 
#define NULL -1 //失败标志

typedef struct
{
	int   d[MAX] ; 	//用数组作为堆栈的储存空间
	int   top ;	//指示栈顶位置的变量
}STACK ; 		//堆栈类型定义
STACK  sq ; 		//定义堆栈

int PUSH (int x) //堆栈的入栈算法
{
	if ( sq.top == MAX-1 )	//满栈,入栈失败
		return NULL;
	else {	sq.top++;	//调整栈顶变量
		sq.d[sq.top] = x ; 	//数据入栈
		 return 1 ; }	//入栈成功
}

int POP ( )//堆栈的出栈算法
{
	if (sq.top == NULL ) return NULL; //空栈,出栈失败
	else	return sq.d[sq.top--]  ;//返回栈首元素,调整栈首变量
}

void main ( )
{
	int x;
	sq.top = NULL ;//初始化空栈
	PUSH (45); 	//调用入栈算法,45入栈
	PUSH (67); 	//调用入栈算法,67入栈
	PUSH (29); 	//调用入栈算法,29入栈
	x = POP ();	//调用出栈算法,x=29
	PUSH (44); 	//调用入栈算法,44入栈
	x = POP ();	//调用出栈算法,x=44
	PUSH (37); 	//调用入栈算法,37入栈
	PUSH (89); 	//调用入栈算法,89入栈
	x = POP ();	//调用出栈算法,x=89
	x = POP ();	//调用出栈算法,x=37
	x = POP ();	//调用出栈算法,x=67
	x = POP ();	//调用出栈算法,x=45
	while (1) ; //在这一行设置断点,中止程序运行,以便观察程序运行的结果 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -