当前位置: 首页 > news >正文

网页设计作业个人网站门户网站有哪些

网页设计作业个人网站,门户网站有哪些,网站设计风格有哪几种,手机网站 后台栈的概念以及栈的实现 栈是一种只允许在一端进行插入和删除的线性表 空栈:没有任何元素 入栈:插入元素 出栈:删除元素 栈本身就是一个线性表,我们可以写一个足够大的数组来实现栈 除此之外,我们还需要变量n来记录…

栈的概念以及栈的实现

栈是一种只允许在一端进行插入和删除的线性表

空栈:没有任何元素

入栈:插入元素

出栈:删除元素

栈本身就是一个线性表,我们可以写一个足够大的数组来实现栈

除此之外,我们还需要变量n来记录栈顶元素和栈的元素个数

我们来实现一下栈

#include <iostream>
using namespace std;
const int N = 1e6;
int st[N];
int n = 0;
void push(int x)
{st[++n] = x;
}
void pop()
{--n;
}
int top()
{return st[n];
}
int size()
{return n;
}
bool empty()
{return n == 0;
}int main()
{for (int i = 0; i < 10; i++){push(i);}while (size()){cout << top() << " ";pop();}}

上述代码就是我们栈的实现,我们栈的元素是从数组下标为1开始的,如果栈顶下标是0的话就是空栈

我们入栈是0,1,2,3,4,5,6,7,8,9

出栈的时候就是从9开始弹出

STL 的stack

除了我们的静态的栈,我们stl库里面还有一个现成的栈,叫stack,它的创建和vector实际上是差不多的

我们来测试一下stack

#include <iostream>
#include <stack>
using namespace std;
const int N = 1e6;stack <int> st;
int main()
{for(int i =0 ;i<10;i++){st.push(i);}while(!st.empty()){cout << st.top() << " ";st.pop();}}

栈和stack的算法题

栈的模板题

这道题我们有两个需要注意的点,第一个数据范围

int的数据范围是-2的31次方到2的31次方-1

unsigned int是0到 2的32次方-1

long long的范围是2的63次方-1

unsigned long long的范围是2的64次方减1

所以我们栈的数据类型应该是unsigned longlong

第二点就是,我们每组数据是隔离的,互不影响的,所以我们要处理脏数据,再每次处理完一组数据之后,要清空我们的栈

这是我们ac的代码

#include <iostream>
using namespace std;
const int N = 1e6+10;
typedef unsigned long long LL;
LL st[N];
int top;
int main()
{int t;int n;cin >> t;while(t--){top = 0;int n;cin >> n;while(n--){string op;cin >> op;if(op == "push"){LL x;cin >> x;st[++top] =x;}else if(op == "pop"){if(top == 0)cout << "Empty" << endl;elsetop--;}else if(op == "query"){if(top == 0){cout <<"Anguei!" << endl;}elsecout << st[top] << endl;}else{cout << top << endl;}}}return 0;
}

栈的算法题之有效的括号

这道题我们用stack来解决一下

如果是左括号,我们入栈,如果是右括号,我们进行匹配,匹配成功出栈,匹配如果不成功那我们就返回false,最后我们还要查看一下栈是不是空,如果不是空,还是false

class Solution {
public:bool isValid(string s) {stack <char> a;for(auto e:s){if (e == '(' or e == '[' or e=='{'){a.push(e);}if(e == ')' or e == ']' or e== '}'){if(empty(a))return false;if((e == ')' && a.top() != '(') or (e == '}' && a.top() != '{') or(e == ']' && a.top() != '[')) return false;a.pop();}}return empty(a);}
};

小tips :我们要注意,右括号匹配的时候,如果栈空了,也是要返回false的,如果没有判空这一个条件,我们取top就会越界。

http://www.yayakq.cn/news/371915/

相关文章:

  • 专门做任务的网站6建设一个蛋糕网站的背景与目的
  • 内江网站建设科技小手工
  • 想自己做网站推广私人可注册网站吗
  • 怎么开通个人网站中国平面设计在线
  • 网站开发用了什么平台查网站备案信息
  • 免费建设淘客网站千秋网络是家西安做网站的公司
  • 欣宝儿在什么网站做直播餐饮装修公司
  • 网站建设公司网站长沙景点推荐
  • 最权威的做网站的公司哪家好ui设计和平面设计哪个难
  • WordPress全站广告久久租房网
  • it项目网站开发的需求文档紫川网站建设
  • 广州网站设计公司排名黄陂区建设招标网站
  • 好的手机端网站模板下载乐清最新招聘信息网
  • 京东商城网站地址威海建设集团网站
  • 外贸企业网站推广公司杭州的设计网站
  • 做网站php与python手机网站怎么制作软件
  • 猪八戒网站开发合同wordpress 发表代码
  • 做网店的网站网站开发工程师简介
  • html5制作网站谁的好清除wordpress开发痕迹
  • 传统网站和手机网站的区别是什么电子商务网站建设人才
  • 网站建设套餐电话WordPress做的网站源代码
  • 网站建设及数据分析dw是网页制作平台吗
  • 定制网站建设公司哪家便宜织梦cms通用蓝白简介大气企业网站环保科技公司源码
  • 甘肃网站建设方案优化广州 Wix网站开发
  • 凡科网站怎么做wordpress完全卸载教程
  • 用html制作简单的购物网站万州建设工程信息网站
  • 如何注册国外网站软件项目管理案例
  • 关于h5的网站模板个人网站可以不备案吗
  • 如何自己做网站的优化推广wordpress用户发表文章
  • 宁波自助建站网站网站建设做到哪些内容