用数组实现堆栈顺序存储

来源:互联网 发布:人工智能主要研究领域 编辑:程序博客网 时间:2024/05/17 02:23

堆栈的顺序存储结构通常由两部分组成,一个一维数组,一个记录栈顶元素位置的变量组成。

指示栈顶位置,自然,这个值就是数组的下标了,因此,有一个元素时,数组元素的下标为0,数组元素为空时,栈顶指针为-1。

定义堆栈:

#define  MaxSize <存储数据元素的最大个数>

typedef struct{

ElementType Data[MaxSize];

int top;//栈顶指针

}Stack;

堆栈操作:压栈

void Push(Stack *PtrS, ElementType item)

{

if(PtrS->Top==MaxSize){

   printf("堆栈满");

return;

}

else{

PtrS->Data[++(PtrS->Top)]=item;//注意这里,对栈顶指针进行赋值操作,先将栈顶指针数值加1,再对其进行赋值。

return;

}

}


出栈操作

ElementType Pop(Stack *PtrS){

if(Pstr->Top==-1){

printf("堆栈为空");

return;

}

else

return (PtrS->Data[(PtrS->Top)--]); //同样,这里是先将栈顶的值进行了返回,再将栈顶指针的值减一。

}


0 0