上一篇刚刚学习了C++图的实现,今天对深度优先搜索(DFS)进行了一定学习,并作出一定实现。在本文中图的实现,以及相应的函数调用(如获得第一个邻接顶点、获得下一个邻接顶点等)均是基于上文中的实现,故如果想参考测试代码,还需导入上文中相应的类定义。关于C++图的实现可参考此处,这里实现了对图的邻接表....
分类:
其他好文 时间:
2014-05-08 09:06:19
阅读次数:
296
前一篇写了二叉树的先序遍历,本篇记录一下二叉树的中序遍历,主要是非递归形式的中序遍历。由于距离上篇有好几天了,所以这里把二叉树的创建和存储结构也重复的写了一遍。二叉树如下二叉树的存储方式依然是二叉链表方式,其结构如下typedef
struct _tagBinTree{ unsigned ch...
分类:
其他好文 时间:
2014-05-07 10:17:50
阅读次数:
335
利用二叉树实现的排序。将源文件中的数据以中序由小到大的顺序构建二叉树,再写入到另一个文件中(顺便释放为二叉树分配的空间)。这里使用了非递归的算法实现。
分类:
编程语言 时间:
2014-05-06 00:19:39
阅读次数:
353
leetcode中有这么一道题,非递归来实现二叉树的遍历。二叉树的后序遍历顺序为,root->left,
root->right,
root,因此需要保存根节点的状态。显然使用栈来模拟递归的过程,但是难点是怎么从root->right转换到root。方法1:对于节点p可以分情况讨论1.
p如果是叶子...
分类:
其他好文 时间:
2014-05-04 10:39:13
阅读次数:
251
//非递归遍历一棵树 需要借助栈
#include
#include
struct Tree
{
int nValue;
Tree *pLeft;
Tree *pRight;
};
struct Stack
{
Tree *root;
Stack *pNext;
};
Stack *pStack = NULL;
void push(Tree *root)
{
St...
分类:
其他好文 时间:
2014-05-03 20:55:41
阅读次数:
325
小米面试
我:
一面:
数据结构+算法:
斐波那契数列:非递归-迭代
1MB内存,外存-100W整数,排序,O(1)-位图法
设计模式:
代理模式:OO
C++:虚函数表
二面:
数据结构+算法:
快排
二叉树遍历
设计模式:
单例模式-多线程:
关系数据库的特性
进程和线程的区别
三面:
数据结构+算法:...
分类:
移动开发 时间:
2014-04-29 13:17:19
阅读次数:
606
以递归以及非递归实现删除单链表L中所有值为X的结点...
分类:
其他好文 时间:
2014-04-27 20:24:45
阅读次数:
755
【二分查找】
针对有序数组,性能非常好。
【时间复杂度】
logn
【代码】
#include
#include
//非递归实现二分查找
int BinarySearch1(int a[], int n, int key)
{
int left, right;
int mid;
left = 0;
right = n - 1;
while(left <= right)
...
分类:
其他好文 时间:
2014-04-27 19:42:22
阅读次数:
538
首先说说二分查找法。
二分查找法是对一组有序的数字中进行查找,传递...
分类:
其他好文 时间:
2014-04-27 18:40:01
阅读次数:
518