摘要: 纠结图的深度优先搜索算法好久,非递归算法需要用到栈来记录上一次访问的结果,但是大脑中反应不出来。这里做一个记录:栈的用处:在这一步执行完成之后,下一步需要用到上一步执行的结果,用栈来实现往往是最有效的。以下是转载的内容:深度优先遍历算法的非递归实现需要了解深度优先遍历的执行过程,设计一个栈来模拟递归实现中系统设置的工作栈,算法的伪代码描述为:假设图采用邻接矩阵作为存储结构,具体算法如下:[cpp] view plaincopyprint? 深度优先遍历算法的非递归实现需要了解深度优先遍历的执行过程,设计一个栈来模拟递归实现中系统设置的工作栈,算法的伪代码描述为: 假设图采用邻接矩阵作为存储结. 阅读全文
posted @ 2013-04-23 21:54 李VS超 阅读(2157) 评论(0) 推荐(1) 编辑
摘要: 队列是一种限定存取位置的线性表。它只允许在表的一端插入,在另一端删除。队列的核心思维是:入队的时候用队尾指针控制,出队的时候用队首指针控制。编程总结:1、在类中声明变量,在构造函数中初始化,是个很好的编程方法。2、入队的时候用队尾指针控制,出队的时候用队首指针控制。3、用到指针的时候,时时刻刻判断指针的值和指向。队列的抽象数据类型表示代码为://队列结点struct QueueNode{ int data; QueueNode *next;};//队列,先入先出的数据结构class Queue{public: //构造函数析构函数 Queue() { //要善于利用构造函数初始化这个操作 .. 阅读全文
posted @ 2013-04-23 18:48 李VS超 阅读(329) 评论(0) 推荐(0) 编辑