数据结构
文章平均质量分 80
resist_o
这个作者很懒,什么都没留下…
展开
-
递归实现链表的冒泡排序。
/*经常通过链表方式处理问题。链表的 插删、合并、逆置、等等我们都通过非递归方法和递归方法实现过了,但是 冒泡排序 一直是用非递归的循环方法 进行处理,这两天突发奇想,为啥不用递归试一试呢?O(∩_∩)O~~然后好好想了一下,恕在下愚钝,最终代码写成这个样子已是极限,。 创建链表的函数和冒泡排序的函数,都是用递归。 思考:如何用递归实现冒泡排序?我觉得排序的代码应该是一样的,都是用中原创 2014-09-28 02:02:05 · 1037 阅读 · 0 评论 -
二叉树的递归、层次与非递归遍历
#include #include#include#define STACKINITSIZE 100 //栈大小 #define STACKINCREASESIZE 20 //栈单次扩容量 //节点声明,数据域、左孩子指针、右孩子指针 typedef struct node{ char data; struct node *lchild,*rchild;原创 2014-12-24 19:09:03 · 601 阅读 · 0 评论 -
两道面试题:2012年10月9号阿里巴巴笔试
1. n个无序整数,已知第i个数在排好序的序列中的位置为j,满足|i-j| 的得两分,总分是20分。 借鉴的答案: 答:由以上条件判断最小的数字一定在前k个中,于是可以讲前k个数建立一个最小堆,然后把根元素取出,该根元素就是最小数,然后将第k+1个数放入堆中,因为第二小的数字肯定在下标为1到k+1的位置范围内,所以调整最小堆之后,根元素就是第二小元素,原创 2015-10-22 22:03:24 · 521 阅读 · 0 评论 -
位运算函数实现float型变量取整数位
虽然C语言自带隐式类型转换,即: float f=12.25; int a=f; printf("%d\n",a); //结果是12 但是这几天了解了float的结构,所以自己写了一个函数 int ftoi(const float f) 来实现它 下面是float的结构: float一共32位,其结构定义如下: |-------- 31 -------|-原创 2016-01-15 19:59:26 · 6247 阅读 · 5 评论 -
寻找和为定值的任意个数(01背包)
这个问题是在July的《编程之法》上看到的,题目要求是:输入两个数字n与sum,在1~n中寻找哪些数字之和等于sum。 很明显这是个典型的01背包问题,因为每一个元素只有要与不要两种选择~ #include #include using namespace std; listlist1; void find_factor(int sum, int n) {原创 2016-01-15 20:27:47 · 669 阅读 · 0 评论 -
KMP 模式串匹配算法
这两天读了JULY的KMP,觉得很受益,写下代码以作备忘。 KMP最重要的就是求出next数组,而next数组则是通过不断比较 str2[k] 与 str2[j] 来确定下一个字符对应的 next数值 ,(相等则直接next[++j] = ++k;,不相等则令k = next[k] 进行递推直到出现 str2[k]==str2[j] 相等的情况,或是没有相等的直到 k == -1 。原创 2016-01-20 21:28:31 · 497 阅读 · 0 评论 -
八皇后问题的回溯法。
八皇后问题: 问题背景:国际象棋是一个8*8的矩阵,在棋盘中同时放下8个皇后,且互相不攻击的情况叫八皇后问题 这里有一张动态图片,看了之后易可对八皇后问题的回溯法在概念上了解不少。 http://img.blog.csdn.net/20140416231902046原创 2014-10-12 19:29:17 · 880 阅读 · 0 评论 -
LCA 问题 用 Tarjan 离线算法 求解
题目:http://poj.org/problem?id=1330 思 路: LCA (最近公共祖先问题),目的是求出一棵树中,任意两个节点的最近公共祖先。原创 2016-02-27 15:39:24 · 498 阅读 · 1 评论