C语言版数据结构顺序栈的数据结构和基本操作函数实现

 这个简单程序的编写过程可谓不简单,一点小bug卡了将近10多天,今天灵感一来,解决了。

书上只有完整函数声明,但没有完整函数代码,于是我为了练习并且加深印象,就打算将所有函数实现一遍,于是就有了这个程序。在完成过程中有借鉴,但是有些借鉴并不正确,编译出来还是有错,我就自己再看书学习研究,根据自己的理解修改,最后费尽心思还是完成了这个练习程序代码,在Code::Blocks中顺利编译运行,真的是长舒了一口气,有些时候,需要缓缓,不要死磕,不然会很痛苦,放放再换个思路,可能就正确了。

在写代码过程中,收获最大的就是,对顺序栈的数据结构和基本操作函数理解更深了,也更清楚了,但还是差火候,需要经常巩固训练,不然会忘记,还没能达到刻在脑子里的熟练度。

要深深记住和理解&取地址符用的时机,啥时候该用啥时候不该用不需要用。

/**
此函数用来练习栈的顺序存储数据结构和基本操作函数实现
栈有栈底和栈顶base和top
Author:Cyan
Date:2018/10/10
**/
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

#define STACK_INIT_SIZE 100//存储空间初始分配量
#define STACKINCREMENT 10//存储空间分配增量
typedef int sElemType;
typedef int Status;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -1

//栈的ADT类型说明定义表示
typedef struct {
    sElemType *base;
    sElemType *top;
    sElemType  stacksize;
}sqStack ;

/*以下为栈的基本操作函数原型声明*/

//构造一个空栈
Status initStack(sqStack *);
//销毁栈S,S不再存在
Status destoryStack(sqStack *);
//把
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值