数据结构中的栈的基本操作实现

这篇博客主要介绍了数据结构中栈的基本操作的实现,包括顺序栈和链栈,探讨了栈在递归算法如斐波那契数列和汉诺塔问题中的应用。虽然作为练习未强调程序健壮性,但提供了加深理解的代码示例。部分函数未在主函数中调用,读者可自行在主函数进行调试。
摘要由CSDN通过智能技术生成

本篇代码是基于数据结构中栈的基本操作以及实现来进行编写的,由于只是当做练习来加深理解,所以没有过多地考虑程序的健壮性。不仅有顺序栈还有链栈,以及栈在递归中的作用,像斐波那契以及hanoi塔问题的算法都用到了递归,有时间接下来的文章会介绍。

栈与顺序表有些像,这里不对其进行详细介绍可以看书。

#include <iostream>
#include <stdio.h>

using namespace std;
typedef int SelemType;

typedef struct
{
    SelemType *top;
    SelemType *base;
    int stacksize;
}SqStack;
void Initial(SqStack &S)//初始化
{
    S.base = new SelemType [100];
    if(!S.base)
        return ;
    S.top = S.base;
    S.stacksize = 100;
}
int Insert(SqStack &S)//单个元素插入
{
    printf("请输入插入元素:");
    scanf("%d",&*S.top++);


}
int Create(SqStack &S,int a)
{
    int n;
    if(S.top-S.base == S.stacksize)
        return -1;
    printf("请输入要插入的元素个数:");
    scanf("%d",&n);

    printf("请输入:");
    for(int i =1;i<=n;i++)
    {
        scanf(&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leng_tian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值