栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

关于顺序栈的学习

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于顺序栈的学习

关于顺序栈的学习
#define maxline 1000

//栈的定义
typedef struct {
    int* base;
	int* top;
	int stacksize;
}sqstack;

//初始化
void InitStack(SqStack& S) {
	S.base = new sqstack[maxline];
	if (!S.base)exit;
	S.base = S.top;
	S.stacksize = maxline;

}


//入栈
int Push(SqStack& S, SElemType e) {
	if (S.top - S.base == maxline)
		return 0;
	else {
		*S.top = e;
		S.top++;
		return 1;

	}
}

//出栈
int Pop(SqStack& S, SElemType& e) {
	if (S.top == S.base)
		return 0;
	else {
		e = *(--S.top);
		return 1;
	}
}

//取栈顶元素
SElemType GetTop(SqStack S) {
	if (S.top != S.base)
		return *(S.base - 1);
}

//遍历输出栈
void printStack(SqStack S) {
	printf("栈底:");
	int* p = S.base;
	while (p != S.top) {
		printf("%d", *p);
		p++;
	}
	printf("n");
}

感悟:
1.top是指向栈最后一个单位的下一个位置的;
2.栈S.base与S.top相等时表示栈为空;
3.S.top-S.base=maxsize时,表示栈满;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297475.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号