关键路径(AOE)
    1.关键路径研究的问题是:(1)完成整项工程至少需要的时间  (2) 哪些活动是关键(即这些事件缩短可以使整个时间缩短)
    2.活动为边,事件为点
    3.某个事件vi的最早开始时间(以vi为尾的活动(边)的最早开始时间)和常理一样,是指在给vi做铺垫的前几个事件中 用的时间最长 的 事件都马不停蹄的做完后(其中用时短的活动肯定能做完)
    4.vi的最迟开始时间,是在整个事件都按最早时间发生的 前提下(即汇点最早时间内完成),由vi之后的事件的最迟开始时间倒推得到的。注:其取其中的最小值是因为 vi最迟开始 -> 意味着vi后的活动的最迟开始 -> 你得保证所有的活动都得完成 -> 所以给该事件的最迟取(vi+1事件的最迟-活动时间)的最小值(否则有的活动完不成)
    5.算法实现中涉及到两个栈,其一与拓扑排序中的作用一样(避免重复检测),其二是将一中出栈元素压入二栈中,以方便后者算每个事件的最迟开始时间。(逆拓扑)


最短路径
迪杰斯特拉(贪心算法):  按路径长度递增的次序产生最短路径   
弗洛伊德(动态规划):
              1.三重循环    k  i  j  (1->N)
              2.最外层为k,指明它是中间顶点序号不大于k的路径,由于是动规思想,你必须先将前k层算出,才能算k+1.
              3.i j 循环构成一个二维数组,所以可以用矩阵表达该问题
                
   

拓扑排序(AOV)
    1.拓扑排序定义:某个事件的发生需要其他事件做铺垫,旨在找到一个事件发生的先后次序,使整个事件可以顺利进行。(例如某门课程的学习需要其他课程辅助)
    2.拓扑排序方法:重复下面的步骤
        (1)选一个没有前驱的顶点输出
        (2)从图中删除该顶点和所有以它为尾的弧
    3.其中算法中涉及到的栈原因是为了避免重复检测入度为零的点。



图的遍历
    1.非连通图由连通图构成  
    2.连通图的深度优先遍历:先输出再放到栈里面类似于先序遍历。
    3.连通图的广度优先遍历:运用队列


二叉树的遍历
    先序,中序,后序其实每次都遍历每个结点三次,区别在于每次访问结点的位置(三次遍历时)不一样,所以在递归遍历时,他们形式基本一样;在非递归遍历时,栈操作的后序遍历要多一步保存前驱结点的操作。(具体见书P167)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值