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

南宁新技术产业建设开发总公司网站软件开发培训机构排名

南宁新技术产业建设开发总公司网站,软件开发培训机构排名,海南省城乡和建设厅网站首页,一般网站用什么软件做一、栈的概念 栈是⼀种只允许在⼀端进⾏数据插⼊和删除操作的线性表。 进⾏数据插⼊或删除的⼀端称为栈顶,另⼀端称为栈底。不含元素的栈称为空栈。进栈就是往栈中放⼊元素,出栈就是将元素弹出栈顶。 二、栈的模拟实现 1. 创建 本质还是线性表&#…

一、栈的概念

栈是⼀种只允许在⼀端进⾏数据插⼊和删除操作线性表

  • 进⾏数据插⼊或删除的⼀端称为栈顶,另⼀端称为栈底。不含元素的栈称为空栈。
  • 进栈就是往栈中放⼊元素,出栈就是将元素弹出栈顶。

 

二、栈的模拟实现

1. 创建

  1. 本质还是线性表,因此可以创建⼀个⾜够⼤的数组,充当栈结构
  2. 再定义⼀个变量 n ,⽤来记录栈中元素的个数,同时还可以标记栈顶的位置。

 const int N = 1e6 + 10;int n;int stk[N];

2. 进栈

时间复杂度:

显然是 O(1) 。 

这⾥依旧舍弃下标为 0 的位置,有效元素从 1 开始记录。

进栈操作,那就把元素放在栈顶位置即可。

 // 进栈 
void push(int x){stk[++n] = x;}

3. 出栈

时间复杂度:

显然是 O(1) 。 

不⽤真的删除元素,只⽤将元素个数减 1 ,就相当于删除栈顶元素。

// 出栈 
void pop(){n--;}

4. 栈顶元素

时间复杂度:

显然是 O(1) 。 

查询栈顶元素。

这⾥要注意,因为栈特殊的规定,不⽀持遍历整个栈中的元素。因此,需要查找栈中元素的时候,只能查找到栈顶元素。

 // 栈顶元素
int top(){return stk[n];}

5. 判空

时间复杂度:

显然是 O(1) 。 

判断栈是否为空

 // 判空
bool empty(){return n == 0;}

6. 有效元素的个数

时间复杂度:

显然是 O(1) 。

 // 栈中元素个数
int size(){return n;}

7. 所有测试代码

#include <iostream>using namespace std;const int N = 1e5 + 10;// 创建栈
int stk[N], n;// 进栈 - 本质就是顺序表里面的尾插
void push(int x)
{stk[++n] = x;
}// 出栈 - 顺序表的尾删操作
void pop()
{n--;
}// 查询栈顶元素
int top()
{return stk[n];
}// 判断是否为空
bool empty()
{return n == 0;
}// 查询有效元素的个数
int size()
{return n;
}int main()
{for(int i = 1; i <= 10; i++){push(i);}// 当栈不为空的时候while(size()) // while(!empty()) {cout << top() << endl;pop();}return 0;
}

二、stack

有了之前 vector 和 list 的铺垫,栈的使⽤应该会⽐较得⼼应⼿。

1. 如何创建?

2. 关⼼⾥⾯有什么函数?

3. 函数的功能以及时间复杂度

1. 创建

  1. stack<T> st;
  2. T 可以是任意类型的数据。

2. size / empty

时间复杂度: O(1)  

  1. size :返回栈⾥实际元素的个数;
  2. empty :返回栈是否为空。

3. push/pop

时间复杂度: O(1)  

  1. push :进栈;
  2. pop :出栈。

4. top

时间复杂度: O(1)   

top :返回栈顶元素,但是不会删除栈顶元素。

5. 所有测试代码

#include <iostream>
#include <stack>using namespace std;int main()
{stack<int> st;// 先讲 1~10 进栈for(int i = 1; i <= 10; i++){st.push(i);}while(st.size()) // !st.empty(){cout << st.top() << endl;st.pop();}return 0;
}
http://www.dtcms.com/wzjs/344999.html

相关文章:

  • ubc网站谁做的网络营销案例分析题
  • 图片网站怎么做优化seo分析师
  • 徐州开发区中学网站世界十大搜索引擎及地址
  • 做企业宣传片的网站seoul是哪个国家
  • 怎么做网站扫码支付seo网络优化
  • php的网站网站关键词优化排名
  • 网站建设税收编码下载百度安装
  • 温州公司建设网站制作长春网站seo公司
  • 网站建设课程设计心得电脑优化软件哪个好用
  • 1688批发网官网seo快速推广
  • 国内erp系统排名太原seo排名公司
  • 网站开发亿玛酷定制哈尔滨百度关键词优化
  • 如何申请自己的网站百度最新秒收录方法2021
  • 如何提升线上销售的方法seo长尾关键词优化
  • 德宏北京网站建设南宁seo推广服务
  • 网站关键字可以做几个太原百度推广排名优化
  • 连云港网站定制开发营销网站搭建
  • 江苏建站系统佛山企业用seo策略
  • wordpress 云数据库谷歌seo公司
  • 山西教育学会网站建设发布信息的免费平台有哪些
  • wordpress smtp设置163网站seo站群软件
  • 省级建设主管部门网站指数型基金是什么意思
  • 发布建设网站太原建站seo
  • 平台是什么意思郑州seo公司
  • 上海企业展厅设计公司seo搜索引擎优化方案
  • 在家帮诈骗团伙做网站市场推广计划方案模板
  • 海参企业网站怎么做百度总部客服电话
  • 自建网站做外贸长沙专业网站制作
  • 美容 北京 公司 网站建设重庆森林经典台词截图
  • 网站建设评分百度seo快速提升排名