数据结构严蔚敏 栈基本操作 C语言实现

【数据结构严蔚敏】 第三章 栈基本操作C语言实现

注意部分:

1.*S.top++ = e;= *S=e ; S.top++ ;
若要实现指针所指地址的元素值++,语句应该是(*a)++而不是*a++
2.关于指针
普通变量如 int a,&a表示变量a所在地址,a表示a所在地址中存储的值
指针变量如 int * a ,a表示a中存储的一个int型变量的地址,*a表示在a存储的地址中存储的值 ,&a依然表示该指针所在地址(不是a中存储的地址),。
2.关于free的问题
free与malloc语句对应,作用于指针,malloc为指针分配专用内存空间,使用free语句后,该内存空间不再为指针专有,它可能会被再次利用,但是指针所指仍然是这个地址,依然能够进行操作,所以在free后需要对指针置为NULL,防止误操作指针出现意外情况。
free(p);p=NULL;配合使用

代码部分

vs2017

stack.h部分

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
#define TRUE	1
#define FALSE	0
#define	OK		1
#define ERROR	0
#define	INFEASLBLE	-1
#define STACK_INIT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10  //存储空间分配增量

typedef int Status;
typedef int SElemType;

typedef struct{
   
	SElemType * base;
	SElemType * top;
	int stacksize;
}SqStack;

//构造一个空栈
Status InitStack(SqStack &S);

//销毁一个栈
Status DestroyStack(SqStack &S);

//清空一个栈
Status ClearStack(SqStack &S);

//若栈为空栈,则返回TRUE,否则返回FALSE
Status StackEmpty(SqStack &S);

//返回S的元素个数,即栈的长度
int StackLength(SqStack S);

//若栈不空,用e返回S的栈顶元素,并返回OK;否则返回ERROR
Status GeTop
  • 3
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值