数据结构中顺序栈的进栈和出栈用C语言表示

简介: 数据结构中顺序栈的进栈和出栈用C语言表示

初始化一个栈,只需要将栈顶指针置为-1

这里我们讨论顺序栈

#include<stdio.h>
#define maxsize 100
typedef struct
{
  int data[maxsize];
  int top;
}sqstack;
void initStack(sqstack &st)
{
  st.top=-1;
}

判断栈空返回1,否则返回0

int isEmpty(sqstack st)
{
  if(st.top==-1)
    return 1;
  else
    return 0;
  
}

进栈的时候注意:栈满就不能进栈

int push(sqstack &st,int x)
{
  if(st.top==maxsize-1)
    return 0;
  ++(st.top);//先移动指针,在进栈
  st.data[st.top]=x;
  return 1;
}

出栈的时候注意:栈空就不能出栈

int pop(sqstack &st,int &x)
{
  if(st.top==-1)
    return 0;
  x=st.data[st.top];//先取出元素,在移动指针
  --(st.top);
  return 1;
}

初始化一个顺序栈整体是这样:

#include<stdio.h>
#define maxsize 100
typedef struct
{
  int data[maxsize];
  int top;
}sqstack;
void initStack(sqstack &st)
{
  st.top=-1;
}
int isEmpty(sqstack st)
{
  if(st.top==-1)
    return 1;
  else
    return 0;
  
}
int push(sqstack &st,int x)
{
  if(st.top==maxsize-1)
    return 0;
  ++(st.top);//先移动指针,在进栈
  st.data[st.top]=x;
  return 1;
}
int pop(sqstack &st,int &x)
{
  if(st.top==-1)
    return 0;
  x=st.data[st.top];//先取出元素,在移动指针
  --(st.top);
  return 1;
}

这是我的复习笔记,希望对大家也有帮助

目录
相关文章
|
3天前
|
存储 算法 调度
数据结构与算法-栈篇
数据结构与算法-栈篇
11 3
|
1天前
|
C语言 C++
【数据结构】C语言实现:栈(Stack)与队列(Queue)
【数据结构】C语言实现:栈(Stack)与队列(Queue)
|
3天前
数据结构初阶 栈
数据结构初阶 栈
8 1
|
8天前
|
算法 C语言
数据结构和算法——归并排序(有序子列的归并、递归算法、非递归算法、思路图解、C语言代码)
数据结构和算法——归并排序(有序子列的归并、递归算法、非递归算法、思路图解、C语言代码)
9 0
|
8天前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
9 1
|
8天前
|
存储 算法 安全
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
10 0
|
8天前
|
算法
数据结构和算法学习记录——栈和队列作业(实现链栈上的进栈、实现链栈上的退栈、实现链队上的入队列)
数据结构和算法学习记录——栈和队列作业(实现链栈上的进栈、实现链栈上的退栈、实现链队上的入队列)
11 0
|
8天前
|
算法 C语言
数据结构和算法学习记录——栈和队列习题-用队列实现栈、用栈实现队列(核心思路、解题过程、完整题解)二
数据结构和算法学习记录——栈和队列习题-用队列实现栈、用栈实现队列(核心思路、解题过程、完整题解)二
14 2
|
8天前
|
算法 C语言
数据结构和算法学习记录——栈和队列习题-用队列实现栈、用栈实现队列(核心思路、解题过程、完整题解)一
数据结构和算法学习记录——栈和队列习题-用队列实现栈、用栈实现队列(核心思路、解题过程、完整题解)一
13 0
|
8天前
|
算法 C语言
数据结构和算法学习记录——特殊线性表之栈(下)-销毁栈函数、判断栈是否为空、压栈函数、出栈函数、取栈顶元素、计算栈中有多少个元素、栈有关习题-有效的括号
数据结构和算法学习记录——特殊线性表之栈(下)-销毁栈函数、判断栈是否为空、压栈函数、出栈函数、取栈顶元素、计算栈中有多少个元素、栈有关习题-有效的括号
10 0