1顺序栈
2021/9/4 6:07:23
本文主要是介绍1顺序栈,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//#include <stdio.h> // c 库 #include <stdlib.h> //maclloc 库 #include <iostream> // c++ 库 // 有本句 ,下面cout 前面可以没有 std:: using namespace std; #define MAXSIZE 4 typedef char Elem; //顺序栈 算法思想是使用两个指针分别指向栈底和栈顶 // 初始和判空 top=base , 判满 top - base = maxsize //push 时 栈不满就 存入数据并top指针++ ,pop时相反 typedef struct { Elem data[MAXSIZE]; Elem* Top, * Base; } Stack; void InitStack(Stack& s) { s.Base = s.Top = s.data; } //判空 bool StackEmpty(Stack s) { if (s.Top == s.Base) return 1; else return 0; } //判满 bool StackFull(Stack s) { if (s.Top - s.Base == MAXSIZE) { // cout << " S is Full !!" << endl; return 1; } else return 0; } bool Push(Stack& s, char e) { if (StackFull(s)) { cout << " 数据 " << e << " is LOST !" << endl; return 0; } else { *s.Top = e; (s.Top)++; //top 指针上移 } } bool Pop(Stack& s, Elem& x) { if (StackEmpty(s)) { cout << " S is Empty !!" << endl; return 0; } else { x = *(s.Top - 1); (s.Top)--; //top 指针下移 return 1; } } //Destroy(Stack &S); int main() { Stack S; //初始化 InitStack(S); //Push 测试 Push(S, 'a'); Push(S, 'b'); Push(S, 'c'); Push(S, 'd'); Push(S, 'e'); //POP 测试 Elem t; Pop(S, t); cout << "pop " << t << endl; Pop(S, t); cout << "pop " << t << endl; ////查看Stack内数据 //cout << endl << " Stack 内数据是"; //for (int i = 0; i < MAXSIZE; i++) // cout << S.data[i] << " "; //cout << endl; }
这篇关于1顺序栈的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)