线性表--顺序栈(九)
作者:互联网
写在前面:
大家好,我是 花狗Fdog ,来自内蒙古的一个小城市,目前在泰州读书。
很感谢能有这样一个平台让我能够在这里分享所学所感。
我喜欢编程,喜欢代码,喜欢去做一个程序员。
努力学习,争取多年后,给亲人更好的生活。
QQ/WX:2506897252 欢迎交流。
文章目录
一.介绍
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
二.代码实现
1.定义栈
#define Stack_Size 50
typedef struct
{
char elem[Stack_Size];//用来存放栈中的元素的一维数组
int top; //用来存放栈顶元素的下标,top为-1表示空栈
}SeqStack;
2.初始化顺序栈
void InitStck(SeqStack * S)
{
//构造一个空栈S
S->top = -1;
}
3.进栈
int Push(SeqStack * S, int x)
{
//将x置入S栈新栈顶
if (S->top == Stack_Size - 1)return(false);
S->top++;
S->elem[S->top] = x;
return(true);
}
4.出栈
int Pop(SeqStack * S, int *x)
{
//将S栈顶元素弹出,放到x所指定的存储空间中打出
if (S->top == 1)//栈为空
return(false);
else
{
*x = S->elem[S->top];//栈顶元素赋给
S->top--;//修改栈项指针
return(true);
}
}
5.读栈顶元素
int GetTop(SeqStack * S, int * x)
{
//将栈S栈顶元素读出,放到x所指的存储空间中,栈顶指针保存不变
if (S->top == -1)//栈为空
return(false);
else
{
*x = S->elem[S->top];//栈顶元素赋给
return(true);
}
}
代码来自《数据结构—用C语言描述》耿国华等人著。
花狗Fdog_ 发布了20 篇原创文章 · 获赞 46 · 访问量 1万+ 私信 关注若有错误,欢迎指出批评,欢迎讨论。
每文一句:如果敌人让你生气,那说明你还没有胜他的把握。如果朋友让你生气,那说明你仍然在意他的友情。
标签:顺序,return,线性表,int,top,元素,栈顶,SeqStack 来源: https://blog.csdn.net/Fdog_/article/details/104072345