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

常州新北区建设局网站有哪些可以免费推广的平台

常州新北区建设局网站,有哪些可以免费推广的平台,如何做百度网站2017,世界各国足球联赛排名stack 与 queuestackSTL 容器中 stack 的使用模拟实现 stackqueueSTL 容器中 queue 的使用模拟实现 queuestack 在数据结构中,我们了解到,stack 栈结构,是一种先进后出的结构,并且我们是使用顺序表来进行实现栈的操作的。 STL 容…

stack 与 queue

  • stack
    • STL 容器中 stack 的使用
    • 模拟实现 stack
  • queue
    • STL 容器中 queue 的使用
    • 模拟实现 queue

stack

在数据结构中,我们了解到,stack 栈结构,是一种先进后出的结构,并且我们是使用顺序表来进行实现栈的操作的。

STL 容器中 stack 的使用

C++ STL 中stack的基本操作有:

在这里插入图片描述

代码测试练习:

void test0()
{stack<int> s;s.push(1);s.push(2);s.push(3);s.push(4);cout << "size() = " << s.size() << endl;cout << "top = " << s.top() << endl;if (s.empty())cout << "s is empty!" << endl;elsecout << "s is not empty!" << endl;s.pop();s.pop();s.pop();cout << "size() = " << s.size() << endl;cout << "top = " << s.top() << endl;if (s.empty())cout << "s is empty!" << endl;elsecout << "s is not empty!" << endl;}

在这里插入图片描述

模拟实现 stack

由于栈结构是“后进先出”的,因此在进行栈模拟时候我们可以使用顺序结构来进行,之前学习到 STL 容器中的 vector 容器是顺序结构的,我们可以直接复用:

namespace xx {       //定义自己的命名空间template<class T,class Container=std::vector<T>>   //定义模板类型class stack {public:stcak()      //构造方法不需要写,因为 Container 被定义为 vector 容器,会自动进行构造方法的调用 {}void push(const T& val){c.push_back(val);       //使用 vector 容器的尾插方法}void pop(){if (empty())return ;c.pop_back();            //出队,使用 vector 容器中的尾删操作-----------后进先出原则}T& top(){return c.back();   //获取栈顶元素,也就是最后一个入栈的元素------即复用 vector 容器中获取最后一个元素的方法}const T& top()const{return c.back();}size_T size()const{return c.size();         //返回 vector 容器的大小}bool empty()const{return c.empty();   //判断 vector 容器是否为空}private:Container c;    //定义 Container 为 vector 容器};}

代码测试:

在这里插入图片描述

queue

在数据结构中,我们知道 queue 队列是一种先进先出的结构。

STL 容器中 queue 的使用

C++ STL 中queue的基本操作有:

在这里插入图片描述

代码测试练习:

void test1()
{queue<int> q;q.push(1);q.push(2);q.push(3);q.push(4);q.push(5);cout << "size() = " << q.size() << endl;cout << "front = " << q.front() << endl;cout << "back = " << q.back() << endl;q.pop();q.pop();q.pop();cout << "size() = " << q.size() << endl;cout << "front = " << q.front() << endl;cout << "back = " << q.back() << endl;if (q.empty())cout << "q is empty!" << endl;elsecout << "q is not empty!" << endl;q.pop();q.pop();if (q.empty())cout << "q is empty!" << endl;elsecout << "q is not empty!" << endl;}

在这里插入图片描述

模拟实现 queue

队列是属于“先进先出”的结构,在队尾进行元素的插入,队头进行元素的删除操作,因此为了避免头删而导致大量元素的移动操作,我们避免使用顺序结构来实现队列,故可以复用 list 链表结构来实现:

namespace xx {          //自定义命名空间template<class T,class Container=std::list<T>>        //定义模板类型class queue {public:queue()         //构造方法会直接使用 list 方法的构造{}void push(const T& val){//尾插q.push_back(val);        //尾插------链表的尾插操作}void pop(){//头删if (empty())return; q.pop_front();          //队头出队----------链表的头删操作}T& front(){return q.front();        //获取队头元素---------链表的首节点信息}const T& front()const{return q.front();            }T& back(){return q.back();         //获取队尾元素----------链表的尾节点信息}const T& back()const{return q.back();}size_t size()const{return q.size();       //队中元素个数  -------->  链表中节点个数}bool empty()const{return q.empty();        //队列是否为空 -----------> 判断链表是否为空}private:Container q;};
}

代码测试:

在这里插入图片描述

ps:

代码需要多练多理解,今天的分享相对于来说还是比较简单的,需要详细的 stack 和 queue 的实现可以参考数据结构中的讲解哦 —> 添加链接描述

~今天的学习就到这里啦!期待周末考试一切顺心鸭!!!

http://www.yidumall.com/news/63970.html

相关文章:

  • 北京网站seo推广百度网盘下载慢
  • 那个网站做贷款的客源真实品牌策划方案怎么写
  • 网站域名购买排名软件
  • 设计师网站图片营销培训视频课程免费
  • 做视频网站怎么备案网络推广方法技巧
  • 网站插入聊天软件发布网
  • 开封市建设银行网站今日热搜榜前十名
  • 免费网站制作平台下载中国足球世界排名
  • 网站 信用卡支付接口茂名seo快速排名外包
  • 时时彩网站收款怎么做指数分布的分布函数
  • 呼伦贝尔市住房和城乡建设委网站热点新闻最新消息
  • wap网站报价网络推广都需要做什么
  • 做网站后端需要什么语言宣传推广方案怎么写
  • seo整站优化解决方案手机app软件开发
  • 济南网站建设jnwuyi加盟教育培训哪个好
  • 班级网站 程序网店运营推广登录入口
  • 有一个外国网站专门做街头搭讪河南智能seo快速排名软件
  • html网站自带字体怎么做seo查询软件
  • 网站的内容和功能今日百度关键词排名
  • 有那些是做批发的网站求职seo
  • 马鞍山网站建设与制作黄冈seo顾问
  • 滨州做网站的电话百度关键词优化是什么意思
  • wap网站空间全媒体广告加盟
  • 济南 论坛网站建设微信群免费推广平台
  • 电脑怎么建网站详细步骤杭州做seo的公司
  • 建设营销型网站的目的有哪些如何让自己的网站被百度收录
  • 金银回收东莞网站建设百度校招
  • 久其软件公司网站seo哪家公司好
  • 游戏排行榜2023东莞seo网站排名优化公司
  • 电子商务网站开发教程课后答案百度搜索趋势