数据结构【线性表篇】(五)
文章目录
前言

为什么突然想学算法了?
> 用较为“官方”的语言讲,是因为算法对计算机科学的所有分支都非常重要。 在绝大多数的计算机科学分支领域中,要想完成任何实质性的工作,理解算法的基础知识并掌握与算法密切相关的数据结构知识是必不可少的。
> 但从实际而言,是因为当下竞争压力逐渐增大,无论走哪一条路,都不免需要一些相对丰富的算法知识,是故,便产生了一个寒假巩固速成算法的计划,可能对于像我这种算法竞赛小白而言,几乎很难,但我仍然还是想尝试一下,毕竟,梦想还是要有的,万一实现了呢?~( ̄▽ ̄~)~

为什么选择码蹄集作为刷题软件?
码蹄集,是在全国高等学校计算机教学与产业实践资源建设专家委员会(TIPCC) 指导下建设的,其依托全国各大名校计算机系和清华大学出版社等单位的强大资源,旨在为计算机学习爱好者提供全面和权威的计算机习题。
.
目录
一、队列
括号匹配(代码用不上,需改成加减乘除应用题)
参考代码
#include<bits/stdc++.h>
using namespace std;
#define MaxSize 10 //定义栈中元素的最大个数
//顺序存储:给各个数据元素分配连续的存储空间,大小为MaxSize*sizeof(ElemType)
typedef struct{
char data[MaxSize]; //静态数组存放栈中元素
int top; //栈顶指针
}SqStack;
void InitStack(SqStack &S){
S.top = 1; //初始化栈顶指针
//也可以使其等于0,然后判空时,把-1改为0
}
//判断栈空
bool SqStackEmpty(SqStack S){
if(S.top==-1) return true;
else return false;
}
//新元素入栈
bool Push(SqStack &S,char x){
if(S.top==MaxSize-1) //栈满(top==MaxSize),报错
return false;
S.top = S.top+1; //指针先加1
S.data[S.top]=x; //新元素入栈
//上两句等价于S.data[++S.top]=x; *注意++S.top,而不是S.top++
return true;
}
//出栈操作
bool Pop(SqStack &S,char x){
if(S.top==-1) //栈空,报错,返回-1
本文介绍了数据结构中的线性表,特别是队列的实现,包括括号匹配算法及KMP算法的应用。作者分享了为何学习算法和选择码蹄集作为学习工具的原因。

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



