Bootstrap

stack&&queue的学习

视频:https://www.bilibili.com/video/BV1TG411A7sZ?vd_source=e5ef53bcd02c60bc6cb52e706517483f&p=10&spm_id_from=333.788.videopod.episodes

.

栈就是一个顶入顶出的东西,对于他只能是对顶部的东西进行操作和读栈的大小,判断栈是否为空

#include<iostream>
#include<stack>
using namespace std;

void print(stack<int> a)
{
	while(!a.empty())
	{
		cout<<a.top()<<" ";
		a.pop();
	}
	cout<<endl;
}
void te(){
	 stack<int>a;
	 stack<int>b;
	 for(int i=0;i<10;i++) b.push(i);
	 cout<<"b="; print(b);
	 a=b;
	 cout<<"a=";print(a);
	 stack<int>c(b);cout<<"c=";print(c);
	 cout<<a.size()<<endl;
}
int main()
{
//      te();
      cout<<"青宝我爱你~"; 
	 
	 return 0;
}

队列就是走独木桥,先上桥先过河,比stack多了一个可访问队首队尾元素,stack只可访问栈顶元素,其他的api都大致一样

#include<iostream>
using namespace std;

//#include<stack>
//void printstack(stack<int> a)
//{
//	while(!a.empty())
//	{
//		cout<<a.top()<<" ";
//		a.pop();
//	}
//	cout<<endl;
//}
//void test_stack(){
//	 stack<int>a;
//	 stack<int>b;
//	 for(int i=0;i<10;i++) b.push(i);
//	 cout<<"b="; printstack(b);
//	 a=b;
//	 cout<<"a=";printstack(a);
//	 stack<int>c(b);cout<<"c=";printstack(c);
//	 cout<<a.size()<<endl;
//}

#include<queue>
void printqueue(queue<int>q)
{
	if(q.empty())
	{
		cout<<"empty"<<endl;
	}
	else {
		while(!q.empty())
		{
			cout<<q.front()<<" ";
			q.pop();
		}
		cout<<endl;
	}
}

void test_queue()
{
	queue<int> q1,q2;
	for(int i=1;i<=10;i++)
	{
		q2.push(i);
	}
	printqueue(q2);
	cout<<"q2.front()="<<q2.front()<<" "<<"q2.back="<<q2.back()<<endl;
	cout<<"q1.size()="<<q1.size()<<endl<<"q1.empty()="<<q1.empty()<<endl;
	q1=q2;
	cout<<"q1.size()="<<q1.size()<<endl<<"q1.empty()="<<q1.empty()<<endl;
	printqueue(q1);
	queue<int>q3(q2);
	printqueue(q2);
}
int main()
{
//      test_stack();
        test_queue();
//      cout<<"青宝我爱你~"; 
	 
	 return 0;
}








;