数据结构与算法
主要记录一些数据结构与算法的学习。
天糊土
对嵌入式非常感兴趣。
展开
-
leetcode2——两数相加
挑战leetcode!原创 2022-11-24 16:15:55 · 134 阅读 · 0 评论 -
Leetcode编程事宜
挑战leetcode!原创 2022-11-23 21:55:57 · 939 阅读 · 0 评论 -
leetcode1——两数之和
挑战leetcode!原创 2022-11-24 11:29:19 · 137 阅读 · 0 评论 -
数据结构探险——图篇
以下内容源于慕课网的学习整理,如有侵权,请告知删除。1、图的相关概念 2、图的存储结构第一种是用数组表达,第二三种用链表来表示有向图,最后一种链表来表示无向图。(1)邻接矩阵(有向无向都可以)(2)邻接表——链式原创 2017-06-21 11:41:28 · 549 阅读 · 0 评论 -
位操作实现加减乘除
整理于1、http://www.cnblogs.com/sunchaosailor/archive/2012/04/02/2429657.html 2、http://blog.chinaunix.net/uid-28499588-id-3488112.html一、常见功能的位操作实现:(1)常用的等式:-n = ~(n-1) = ~n+1;(2)获原创 2016-09-21 17:34:21 · 1266 阅读 · 0 评论 -
回文的判断代码
//写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回 - 1 int fun(char *p){ if (p == NULL) return -1; else { int length = 0; inti = 0; int judge = 1; length = strlen(p); for (i = 0; i<len原创 2017-04-06 17:04:15 · 1198 阅读 · 0 评论 -
三种不使用中间参数,交换两个参数的值的方法
第一种:要求必须是整数int i = 50,j = 60;i = i^j;j = i^j;i = i^j;第二种:可以不是整数类型i = i + j;j = i - j;i = i - j;第三种:很巧妙i = i + j - (j = i);原创 2017-04-07 10:44:01 · 617 阅读 · 0 评论 -
一些自己编写的字符串操作函数
1、free后并不说明该指针就指向NULL,正确理解应该是该指针变为野指针。(1)free是函数,函数参数是值传递的,函数改变不了被调用者的实参的值。所以每次free后,应该接着加上一句p=NULL。(2)free P之后,P就变为野指针了。因此一般需要加上一句P=NULL。(3)只有执行 free(p) 才可以解脱指针与系统内存的关联,在 free(p) 前直接执行 p=NULL 是原创 2017-03-30 10:26:23 · 765 阅读 · 0 评论 -
数据结构探险——队列篇
以下内容源于慕课网的学习整理,如有侵权,请告知删除。1、什么是队列?(1)先入先出的模型(FIFO)。(2)队头,队尾。(3)细分为普通队列,环形队列。普通队列存在的问题如果买票者不动,售票员移动,则浪费了前面的内存空间;如果售票员不动,则每次都需要往前移动。环形队列解决了该问题队列头顺时针移动时,之前的空间又可以原创 2017-06-20 17:43:11 · 524 阅读 · 0 评论 -
数据结构探险——树篇
以下内容源于慕课网的学习整理,如有侵权,请告知删除。树存在概念中,是对数组或者链表的一种操作方式的概念。一、与树有关的一些基础概念(1)树有限节点的集合;(2)度某个节点的直接孩子数目;(3)叶节点终端节点(4)祖先所有在它之上的节点(5)深度节点的深度(节点所处的位置)树的深度原创 2017-06-20 18:53:09 · 526 阅读 · 0 评论 -
数据结构探险——栈篇
以下内容源于慕课网的学习整理,如有侵权,请告知删除。原创 2017-06-20 17:43:57 · 460 阅读 · 0 评论 -
数据结构探险——线性表篇
以下内容源于慕课网的学习整理,如有侵权,请告知删除。1、线性表概念机制的实现2、顺序表构造函数、析构函数清空线性表,判空求当前线性表长度,获取某个序号的元素定位某个元素的位置找前驱(找后驱类似的)原创 2017-06-20 17:44:46 · 531 阅读 · 0 评论 -
bitmap算法
http://www.cnblogs.com/dyllove98/archive/2013/07/26/3217741.html转载 2016-09-25 21:24:35 · 390 阅读 · 0 评论 -
一段采用链地址法解决冲突的Hash代码
/*typedef struct linkList { int data; int index_nums; struct linkList *ptr;}linkList;void hashInsert(int i, int val, int hashSize, linkList *hashT) { int tmp_val; (val < 0) ? (tmp_val = (-1转载 2016-09-24 09:37:48 · 1224 阅读 · 0 评论 -
单链表的头插法和尾插法实现代码(无头结点)
/*头指针,可以发现head是赋值为NULL,而不是head->next*///-----------------头插法-------------------node *head, *p;head = NULL;while (……){ p = (node *)malloc(……); p->data = ……; p->next = head;//此时第一个p的next指针是NULL,原创 2016-09-22 22:17:54 · 2993 阅读 · 0 评论 -
动态查找表之二叉搜索树
一、二叉搜索树(BST)二叉搜索树(二叉排序树)定义如下:(1)一棵空树;(2)或者不是空树1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;3)左、右子树也分别为二叉排序树。 二、二叉搜索的操作/**********************************************原创 2017-03-16 17:24:55 · 623 阅读 · 0 评论 -
最小生成树和最短路径
一、概念的理清1、图分为连通图和非连通图,我们一般讨论连通图。带权的图叫做网。2、连通图的生成树:(1)包含图的所有的n个顶点;(2)只有n-1条边,且这n-1条边足以构成一棵树;3、最小生成树:构造连通网的生成树,且代价最小。简单理解,就是连通所有的点,而且权值总和最小的生成树。4、最短路径:两点之间权值总和最小的路径。二、最小生成树常用算法1、P算法:2、K原创 2016-09-24 11:09:44 · 1024 阅读 · 0 评论 -
简单的深度优先遍历和广度优先遍历
代码来源于《啊哈!算法》。1、深度优先遍历:#includeint book[101],n, e[1001][1001], sum;void DFS(int cur){ int h; sum++; printf("%d ", cur); if (sum == n) return; for (h = 1; h <= n; h++) if (book[h] == 0 &原创 2016-09-25 15:35:13 · 972 阅读 · 0 评论 -
树的遍历和图的遍历的异同
一、认识的理清1、 首先,应该认识到“深度优先”和“广度优先”是算法思想,而递归是实现“深度优先”的一种方法(深度优先可以非递归实现);2、 其次,深度优先搜索也叫深度优先遍历(DFS,Depth_Fisrt_Search,这么低级的概念也需要记录,不过我的确纠结过这两个称呼有啥区别)。3、 最后,遍历的目的是把节点按照一定的规则排成线性序列。二、图的遍历1、深度优先遍原创 2016-09-24 10:39:52 · 5218 阅读 · 0 评论 -
异或运算交换两个整数
异或运算有两个特性:1、一个数异或本身恒等于0,如5^5恒等于0;2、一个数异或0恒等于本身,如5^0恒等于5。基于此,交换操作如下:a=a^b;b=b^a;a=b^a;原创 2016-09-20 11:31:00 · 707 阅读 · 0 评论 -
排序算法总结
以下内容均源于网络资源的学习和整理:http://blog.csdn.net/xiazdong/article/details/8462393http://www.cnblogs.com/biyeymyhjob/archive/2012/07/17/2591457.htmlhttp://blog.csdn.net/yexinghai/article/details/464992原创 2017-03-17 09:59:24 · 346 阅读 · 0 评论 -
从0-1背包问题学习回溯法、分支界限法、动态规划
一、0-1背包问题的描述下面将使用回溯法、分支界限法、动态规划法来分析和解决此问题。二、算法分析以及代码1、回溯法(1)算法步骤2、分支界限法3、动态规划原创 2016-09-25 17:08:40 · 2335 阅读 · 6 评论 -
查找算法的总结
以下内容来于网络资源的学习整理,特此声明。查找算法总结一、查找技术分类1、静态查找表技术(顺序查找、二分查找、分块查找)2、动态查找表技术(二叉查找树)3、哈希表技术(哈希表技术)二、查找技术说明 衡量查找算法优劣的标准——平均搜索长度(ASL)=,其中Ci为查找第i个数需要进行比较的次数(比如开始对比一个数组中的第i个数,则前面已经对比了i-1个转载 2017-03-16 14:44:49 · 781 阅读 · 0 评论 -
基本数据结构:树(tree)
略。原创 2016-09-15 22:54:06 · 2018 阅读 · 0 评论 -
常见的算法思想(分治、动态规划、贪心算法、回溯法等)
算法分类。原创 2016-12-16 23:05:21 · 823 阅读 · 0 评论