文章编号:875 .2357

『关闭窗口』

堆栈的有关算法(dhdO)




#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) ; //在这一行设置断点,中止程序运行,以便观察程序运行的结果
}



(文章推荐人:电池)

 

返回大虾论坛 返回首页