前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >线性表--顺序栈(九)

线性表--顺序栈(九)

作者头像
花狗Fdog
发布2020-10-28 09:53:25
3000
发布2020-10-28 09:53:25
举报
文章被收录于专栏:花狗在Qt花狗在Qt

一.介绍

在这里插入图片描述
在这里插入图片描述

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

二.代码实现

1.定义栈

代码语言:javascript
复制
#define Stack_Size 50
typedef struct
{
 char elem[Stack_Size];//用来存放栈中的元素的一维数组
 int top; //用来存放栈顶元素的下标,top为-1表示空栈
}SeqStack;

2.初始化顺序栈

代码语言:javascript
复制
void InitStck(SeqStack * S)
{
 //构造一个空栈S
 S->top = -1;
}

3.进栈

代码语言:javascript
复制
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.出栈

代码语言:javascript
复制
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.读栈顶元素

代码语言:javascript
复制
int GetTop(SeqStack * S, int * x)
{
 //将栈S栈顶元素读出,放到x所指的存储空间中,栈顶指针保存不变
 if (S->top == -1)//栈为空
  return(false);
 else
 {
  *x = S->elem[S->top];//栈顶元素赋给
  return(true);
 }
}

代码来自《数据结构—用C语言描述》耿国华等人著。

若有错误,欢迎指出批评,欢迎讨论。 每文一句:如果敌人让你生气,那说明你还没有胜他的把握。如果朋友让你生气,那说明你仍然在意他的友情。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.介绍
  • 二.代码实现
    • 1.定义栈
      • 2.初始化顺序栈
        • 3.进栈
          • 4.出栈
            • 5.读栈顶元素
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档