三 数据结构站和队列的应用

    技术2022-05-19  18

    3.1 栈的应用

    3.1.1 表达式求值

    后缀表达式

    栈求解方法

    1)若当前字符是操作数,直接发送给后缀表达式

    2)若当前字符是运算符:

    若当前运算符的优先级高于栈顶运算符,则进栈

    否则,退出栈顶运算符发送给后缀表达式

    3.1.2 迷宫问题

    深度优先遍历

    设定当前位置的初值为入口位置

    do{

      若当前位置可通:

         则{将当前位置插入栈顶;

              若该位置为出口位置,则算法结束

              否则切换当前位置的下邻方块为新的当前位置

             }

       否则,当前位置不通

        则{若栈不空

             {若栈顶位置尚有其他方向未探索:

                 设定新的当前位置为栈顶的下一相邻快,继续试探

                若栈顶的四周均不通

                  {

                      删去栈顶位置;

                      若栈不空,重新测试新的栈顶位置

                       直至找到一个可通的相邻块或出栈至栈空

                  }

     

            }

         若栈空:表明没有出口

          }

    }

    3.2 队列的应用

    3.2.1 迷宫问题

    广度优先搜索

    队列数据类型

    typedef struct

    {int x,y;

    }PoseType;

    typedef struct

    {int pre;

      PoseType seat;

    }QElemType;

     

     


    最新回复(0)