
数据结构和算法
文章平均质量分 78
connyjiwa
这个作者很懒,什么都没留下…
展开
-
二叉树的递归遍历
结点定义:typedef struct BTree{ DataType data; struct BTree* lchild,rchild;}; 1、先序遍历:从根节点开始,沿左子树一直找到没有左孩子的结点,依次访问Visit所经过的结点,同时经过的结点进栈,当找到没有左孩子的结点时,从栈顶退出该结点。此时该结点的左子树已访问完毕,再用上述方法遍历该结点的右子树,如果反复直到栈原创 2014-03-28 09:20:19 · 620 阅读 · 0 评论 -
二叉树的非递归遍历
能递归实现的一般都可以用栈来实现,因此可以用栈来实现二叉树的非递归遍历。以下图的二叉树为例:1、先序遍历:首先把根结点入栈,然后根结点出栈(访问结点),在出栈的同时将其右左孩子进栈,再把栈顶元素出栈(访问结点),同时将其右左孩子入栈,如此反复知道栈为空。typedef struct node{ int data; struct node *lchild,*rchi原创 2014-03-28 17:10:20 · 671 阅读 · 0 评论 -
排序算法
1、选择排序:以升序为例,第一次找出最小的数放在第一个位置,第二次找出剩下元素中最小的数放入第二个位置,依此类推,知道最后一个元素。最好情况是本来就有序,此时需要交换0次,最差情况是逆序,此时需要交换n-1次,总体复杂度O(n*n)。void SelectSort(int a[],int iLen){ int i = 0; int j = 0; int iMin = 0; int i原创 2014-03-24 22:35:09 · 461 阅读 · 0 评论 -
如何实现概率性事件
游戏中经常会遇到概率性的问题,比如原创 2014-04-10 23:45:56 · 1285 阅读 · 0 评论