- 博客(22)
- 资源 (3)
- 收藏
- 关注
原创 数据结构与算法----个人小结
对数据结构的学习断断续续持续了有三个月之久,随着《数据结构与算法经典问题分析》Java语言描述 一书的结束,数据结构的学习也暂告一段落。这并不意味着停止学习算法,后面我将会继续学习并不断提高自己表述能力。 数据结构学习绝非一蹴而就,就拿我这本书来说,其中有太多的知识我被我忽略,大有捡了籽麻丢西瓜的感觉。后期我会不断充电学习,把自己的内功修炼到家,不然到了社会上会被批死。
2017-05-27 10:57:13 5730
原创 数据结构与算法(32)——字符串算法
检查字符串P是否是字符串T的子串。因为要检查整个定长的字符串P,所以有时候这些算法称为精确字符串匹配算法。Robin-Karp算法KMP(Knuth Morris Pratt)字符串匹配算法
2017-05-26 22:26:40 551
原创 数据结构与算法(31)——查找习题(三)
题目:将偶数与奇数分开给定一个数组A[],写出一个函数,使其能够将偶数与奇数分开。该函数把所有偶数放在前面,奇数放在后面。例如,输入 = {12, 34, 45, 9, 8, 90, 3} 输出 = {12, 34, 90, 8, 9, 45, 3}在输出时,数字顺序可以改变,也就是34可以出现在12之前思路:这是荷兰国旗问题的变体1.初始化两个索引left和right:left=0,rig
2017-05-25 09:55:12 438
原创 数据结构与算法(30)——查找习题(二)
题目:给定一个含n个元素的数组,在数组中查找两个元素,这两个元素的和等于给定的元素K 题目:查找和最接近0的两个元素:给定一个包含正数和负数的数组,查找两个元素,使得它们的和最接近0.
2017-05-24 22:30:44 1706
原创 数据结构与算法(29)——查找习题(一)
题目:给定一个长度为n的数组,给出一个算法,判定该数组中是否存在重复元素 题目:发现缺失的数:已知一个由n-1个取值范围在1~n的整数组成的列表。假设列表中没有重复的出现的整数,则列表的中缺失某个整数。
2017-05-24 22:22:04 605
原创 数据结构与算法(28)——查找
无序线性查找(UnSorted Linear Search) 有序线性查找(Sorted Linear Search)二分查找(Binary Search)
2017-05-24 22:15:17 301
原创 数据结构与算法(27)——排序(二)
希尔排序(Shell Sort)又称为缩小增量排序(diminishing increment sort)该算法是一种泛化的插入排序。归并排序(Merge Sort)快速排序(Quick Sort)也称为分区交换排序
2017-05-24 11:27:45 293
原创 数据结构与算法(26)——排序(一)
冒泡排序(Bubble Sort)是一种最简单的排序算法。选择排序(Selection Sort)是一种原地排序(即不需要额外的存储空间)算法,适用于小文件。插入排序(Selection Sort)是一种简单且高效的比较排序算法。典型的原地排序
2017-05-22 22:32:25 290
转载 数据结构与算法(25)——拓扑排序
本文将从以下几个方面介绍拓扑排序:拓扑排序的定义和前置条件和离散数学中偏序/全序概念的联系典型实现算法Kahn算法基于DFS的算法解的唯一性问题实际例子
2017-05-22 20:44:36 689
原创 数据结构与算法(23)——优先队列和堆
优先队列(Priority Queue)是一种数据结构,它支持插入(Insert)操作和删除最小值(DeleteMin)或删除最大值(DeleteMax)并返回删除元素操作。优先队列的这些操作等价于队列的EnQueue和DeQueue操作。区别在于,对于优先队列,元素进入队列的顺序可能与其被操作的顺序不同。简单来说就是优先队列不一定满足先入先出的原则,而是根据元素的优先级来进行操作。
2017-05-17 21:27:52 518
原创 数据结构与算法(22)——二叉搜索树
二叉搜索树(BinarySearchTree)在二叉搜索树中,所有的左子树节点的元素小于根节点的元素数据,所有的右子树节点的元素大于根节点的元素数据。1.一个节点的左子树只能包含值小于该节点数据的节点2.一个节点的右子树只能包含值大于该节点数据的节点3.左右子树必须也为二叉搜索树
2017-05-15 19:26:53 657
原创 数据结构与算法(21)——二叉树习题四
题目:将一棵树转换成其镜像树。题目:判断两棵树是否互为镜像题目:根据中序遍历序列和前序遍历序列构建二叉树题目:打印二叉树中某节点的所有祖先节点题目:查找二叉树中两个节点的最近公共祖先(LCA,Lowest Common Ancestor)题目:Zigzag树遍历题目:n个节点可以组合成多少棵不同的二叉树?
2017-05-15 14:41:41 453
原创 数据结构与算法(20)——二叉树习题三
题目:判断给定的两棵树结构是否相同题目:二叉树的直径题目:判断是否存在路径的数据和等于给定的值;题目:计算二叉树所有节点之和
2017-05-12 20:47:30 477
原创 数据结构与算法(19)——二叉树习题二
题目:求已知二叉树高度/深度题目:删除二叉树中某个节点题目:用非递归算法获取二叉树叶子节点个数题目:用非递归算法获取二叉树满节点个数题目:用非递归算法获取二叉树半节点个数
2017-05-10 17:17:10 686
原创 数据结构与算法(18)——二叉树习题一
题目:查找二叉树中最大元素题目:搜索二叉树中某个元素题目:向二叉树插入一个元素题目:获取二叉树节点个数题目:逆向逐层输出树中的元素
2017-05-09 22:01:18 494
原创 数据结构与算法(17)——二叉树遍历
遍历概念访问树中所有节点的过程叫作树遍历。遍历分类遍历分类可以根据当前节点被访问的顺序来划分;假设,当前节点用D表示;该节点的左子树用L表示;该节点的右子树用R表示DLR:前序遍历(preOrder traversal)LDR:中序遍历(inOrder traversal)LRD:后序遍历(postOrder traversal)
2017-05-09 11:18:40 302
原创 数据结构与算法(16)——树基本概念
树是一种典型的非线性结构;一棵树是N个节点和N-1条边的集合。这个集合可以是空集;若不是空集,则树由根节点(root)以及0个或多个非空的子树T1、T2、T3、...、Tn组成。
2017-05-08 22:37:57 516
原创 数据结构与算法(15)——队列习题二
题目:设计一个逆置队列元素的算法。题目:给定一个整数栈,如何检查栈中每对相邻数字是否是连续的。每对数字的值可以是递增或递减的。如果栈中的元素个数是奇数,那么组队时忽略栈顶元素。题目:给定一个整数k和一个整数队列,如何把队列中前k个元素逆置,其余元素保持不变?
2017-05-01 11:05:23 1436
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人