算法
文章平均质量分 59
问路1
这个作者很懒,什么都没留下…
展开
-
二叉树的遍历---栈实现
二叉树的遍历简单的方法是递归,但是大量的递归还是比较消耗时间的,而使用栈方法就快速多了,虽然会有需要一定的空间缓存void PreOrder1(PBiTree pRoot){ PBiTree pStack[100]; int nTop = 0; PBiTree pCur = pRoot; while (nTop > 0 || pCur != NULL) {原创 2016-09-08 11:55:55 · 445 阅读 · 0 评论 -
迷宫求解【穷举求解法】
迷宫求解是一个理解数据结构中栈的比较好的实践例子,下面进行分析设迷宫是又一个2维数组组成的,元素只有0或1来表示是否通路,0代表通路,1代表有墙壁不通路例如下图中是一条通路穷举法:从入口出发,顺某方向向前探索,如能走通,则继续往前走,否则沿原路返回,换一个方向再试,直到所有可能的铜锣都探索到为止。为了保证在任何时候都有可能沿原路返回,所有要用后进先出的结构---栈来保存从入口到当前原创 2016-11-23 21:40:58 · 9199 阅读 · 2 评论 -
二叉树的所有路径
void printArray(vectorArr) { int i; for (i = 0; i < Arr.size(); i++) printf("%d ", Arr[i]); printf("\n"); } void findPaths(TreeNode *data,vector path){ path.push_back(data->val);原创 2017-06-26 20:43:17 · 2922 阅读 · 0 评论 -
指定地址的复制
如下哪一段代码不能给地址0xaae0275c赋值为1?()A. volatile int *p=(int *)0xaae0275c;*p=1B. (volatile int *)0xaae0275c[0]=1C. volatile int *p=(int *)0xaae0275c;p[0]=1D. *(volatile int *)0xaae0275原创 2017-06-27 11:40:28 · 389 阅读 · 0 评论 -
关于字符串循环左移的若干解决方法
题目描述:对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。方法一:使用辅助内存 string LeftRotateString(string str, int n) { if(str.length()==0) return str;原创 2017-07-20 21:40:01 · 883 阅读 · 0 评论 -
关于开方sqrt的优化算法
float sqrt(float x){ if(x==0) return 0; float result=x; float xhalf=0.5f*result; int i=*(int*)&result; i=0x5f375a86-(i>>1); result=*(float*)&i; result=result*(1.5f-xhalf*result*result); r转载 2017-08-28 17:56:30 · 2022 阅读 · 0 评论