10分钟写代码,1小时改代码,微笑.jpg,改代码语法错误编译器就能找出来,逻辑错误就mmp了,涉及到系统堆栈就更痛苦了。然而最扎心的时,改了一个早上调了一个早上,结果标点符号没改一个就运行成功了,我的编译器这是存心和我作对呢吧!电脑还十分配合的动不动就来个没有相应。配置低的电脑加win7真让我心力交瘁。吐槽完了,要干正事了,选择了就要坚持啊!
- 栈的介绍
栈是一种运算受限的线性结构,只能在表尾进行操作,这特殊的一端呢我们称之为栈顶top,表头称作栈底base。
考试的时候呢,会涉及到1、进出栈的顺序;2、栈的容量;3、栈中元素的指针。网上很多例题,这里不再赘述了,直接上代码吧。原本很简单的结构却折腾了我一早上。
1、头文件以及宏定义等
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
typedef int SElemType;
#define STACK_INIT_SIZE 20//存储空间初始分配量
#define STACKINCREMENT 10//存储空间初始分配量
2、顺序栈的定义
//顺序栈的定义
typedef struct {
SElemType *base;//栈底指针
SElemType *top;//栈顶指针
int stacksize;//当前可使用最大容量
}SqStack;
3、栈的初始化
//初始化栈
SqStack Initstack(SqStack &S){
if(!(S.base =(SElemType*)malloc(STACK_INIT_SIZE*sizeof(S