数据结构在机试中的应用
一、栈的应用:
1、栈的特点:
先进先出,只能在栈尾进行插入和删除操作。
2、stl标准库:
stack<int> s;
s.push(i);//向栈中压入一个元素。
int x=s.top();//读取栈顶的元素
s.pop()//弹出栈顶元素
标准模板库:
#include<stack>
3、应用:
(1)括号匹配:
(2)简单计算器:
二、哈夫曼树:
1、构造哈夫曼树:
思想:
(1)将所有的节点放入集合K中。
(2)取出集合中节点值最小的两个,相加构成新的节点。并将该节点加入到集合k中。然后循环1、2步。
(3)若K中仅剩下一个节点,则构造完成。该节点的值即为当前的带权路径和。
2、数据结构:
我们使用堆得数据结构。可以使用stl中的标准模板--优先队列来实现。
priority_queue<int> Q;
上面默认建立大顶堆。
建立小顶堆:
priority<int vector<int>,greater<int>> Q;
有关操作:
q.push(x);
q.top();
q.pop()。
所在库:
#include<queue>