顺序栈操作(C语言代码)

简介: 顺序栈操作(C语言代码)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define Maxsize 100
using namespace std;
typedef struct SqStack{
    int data[Maxsize];
    int top;
}SqStack;
/*
    栈顶指针:S.top,初始时设置S.top=-1,;栈顶元素:S.data[S.top]。
    进栈操作:栈不满时,栈顶指针先加1,再送值到栈顶元素。
    出栈操作:栈非空时,先取栈顶元素值,再将栈顶指针减一。
    栈空条件:S.top==-1;栈满条件:S.top==Maxsize-1;栈长:S.top+1
*/
//初始化
int Init_Sqstack(SqStack &S)
{
    S.top=-1;
}
//进栈
bool push_SqStack(SqStack &S,int x)
{
    if(S.top==Maxsize-1)
        return false;//栈满
    S.data[++S.top]=x;
    return true;
}
//出栈
bool pop_SqStack(SqStack &S,int &x)
{
    if(S.top==-1)
        return false;
    x=S.data[S.top];
    S.top--;
    return true;
}
//获取栈顶元素
bool GetTop(SqStack S,int &x)
{
    if(S.top==-1)
        return false;
    x=S.data[S.top];
    return true;
}
void show_SqStack(SqStack S)
{
    for(int i=0;i<=S.top;i++)
    {
        printf("%d ",S.data[i]);
    }
}
int main()
{
    SqStack S;
    Init_Sqstack(S);
    push_SqStack(S,1);
    push_SqStack(S,2);
    push_SqStack(S,3);
    show_SqStack(S);
    int a=0;
    pop_SqStack(S,a);
    printf("%d \n",a);
    show_SqStack(S);
    GetTop(S,a);
    printf("%d \n",a);
}
目录
相关文章
|
27天前
|
存储 编译器 C语言
【数据结构】C语言实现链队列(附完整运行代码)
【数据结构】C语言实现链队列(附完整运行代码)
36 0
|
27天前
|
存储 算法 程序员
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
39 0
|
1月前
|
算法 安全 C语言
使用C语言实现DES算法代码
使用C语言实现DES算法代码
|
1月前
|
Linux C语言
Linux系统下C语言的队列操作
Linux系统下C语言的队列操作
23 0
|
1月前
|
C语言
C语言栈的括号匹配的检验讲解及相关代码
C语言栈的括号匹配的检验讲解及相关代码
33 0
|
1天前
|
存储 算法 C语言
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
|
3天前
|
存储 C语言
C语言中字符串的引用与数组元素操作
C语言中字符串的引用与数组元素操作
12 0
|
23天前
费马螺线在现实生活中的应用
费马螺线在现实生活中的应用
10 1
|
1月前
|
存储 机器学习/深度学习 算法
C语言代码实现数据结构与算法
以上代码中,哈希表使用链表解决哈希冲突,每个链表节点包含一个键值对。hash函数用于计算键值对应的哈希值,insert函数用于向哈希表中插入一个键值对,若当前位置为空,则直接插入;否则,将新节点插入到链表末尾。search函数用于在哈希表中查找指定键值的值,若存在则返回其值,否则返回-1。
32 1
|
1月前
|
存储 C语言
C语言结构体操作
C语言结构体操作
15 0