感谢博主http://blog.csdn.net/zhy_cheng/article/details/8090346对c++堆栈、队列的基本讲解
使用标准库的栈和队列时,先包含相关的头文件
#include<stack>
#include<queue>
using namespace std;
定义栈如下:
stack<int> stk;
定义队列如下:
queue<int> q;
栈提供了如下的操作
队列提供了下面的操作
附上一个综合链表,堆栈操作的剑指offer题目代码:
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
ListNode*p=pHead1;
stack<ListNode*>s1;
stack<ListNode*>s2;
while(p)
{
s1.push(p);
p=p->next;
}
p=pHead2;
while(p)
{
s2.push(p);
p=p->next;
}
p=NULL;
while(!s1.empty()&&!s2.empty())
{
if(s1.top()!=s2.top())
{
break;
}
else
{
p=s1.top();//访问栈顶元素,但不删除该元素;
}
s1.pop();
s2.pop();
}
return p;
}
};