机试二

数据结构在机试中的应用

一、栈的应用:

  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>

三、二叉树:

  1、

 

 

 

 

 

四、二叉排序树:

  1、

 

 

 

 

 

原文地址:https://www.cnblogs.com/monty12/p/9458777.html