
【程序员高阶】➣ 数据结构与算法
gamedev˚
很多东西不是你觉得有用才去学,而是学了才知道它有用。
展开
-
【Java基础总结】-算法题总结
常见数据结构和算法编程题1.二叉树的深度public class Solution { public int TreeDepth(TreeNode root) { if (root == null) { return 0; } return Math.max(TreeDepth(root.left), TreeDepth()...原创 2017-11-25 12:12:43 · 493 阅读 · 0 评论 -
树结构
树结构树(Tree)结构是一种描述非线性层次关系的数据结构,其中重要的是树的概念。树是n个数据结点的集合,在该集合中包含一个根结点,根结点之下分布着一些互不交叉的子集合,这些子集合是根结点的子树。树结构的基本特征如下: - 在一个树结构中,有且仅有一个结点没有直接前驱,这个结点就是树的根结点; - 除根结点外,其余每个结点有且仅有一个直接前驱; - 每个结点可以有任意多个直接后继。 从树的定原创 2017-12-19 16:23:34 · 417 阅读 · 0 评论 -
队列结构
队列结构从数据的逻辑结构来看,队列是一种线性结构。如果从数据的存储结构来进一步划分,队列结构包括两类。 1. 顺序队列结构:即使用一组地址连续的内存单元依次保存队列中的数据。在程序中,可以定义一个指定大小的结构数组作为队列。 2. 链式队列结构:即使用链表形式保存队列中各元素的值。从数据的运算角度来分析,队列结构是按照“先进先出”的原则处理结点数据的。在队列结构中,数据运算非常简单。一般队列结构原创 2017-12-19 03:28:55 · 920 阅读 · 0 评论 -
顺序栈结构
栈结构栈结构是一种线性结构,栈结构包括两类: 1. 顺序栈结构:即使用一组地址连续的内存单元依次保存栈中的数据。在程序中,可以定义一个指定大小的结构数组来作为栈,序号为0的元素就是栈底,再定义一个变量top保存栈顶的序号即可。 2. 链式栈结构:即使用链表形式保存栈中各元素的值。链表首部(head引用所指向元素)为栈顶,链表尾部(指向地址为null)为栈底。栈结构是按照“后进先出”的原则处理节点原创 2017-12-19 03:25:24 · 719 阅读 · 0 评论 -
线性表之链表结构
典型的链表结构,包括如下内容: 1. 数据部分,保存的是该结点的实际数据。 2. 地址部分,保存的是下一个结点的地址。 链表结构就是由许多这种结点构成的。在进行链表操作时,首先需定义一个“头引用”变量(一般以head表示),该引用变量指向链表结构的第一个结点,第一个结点的地址部分又指向第二个结点……直到最后一个结点。最后一个结点不再指向其他结点,称为“表尾”,一般在表尾的地址部分放一个空地址n原创 2017-12-19 03:16:18 · 425 阅读 · 0 评论 -
线性表之顺序表结构
顺序表(Sequential List)就是按照顺序存储方式存储的线性表,该线性表的结点按照逻辑次序依次存放在计算机的一组连续的存储单元中。由于顺序表是一次存放的,只要知道了该顺序表的首地址及每个数据元素所占用的存储长度,那么就很容易计算出任何一个数据元素(即数据结点)的位置。准备数据准备在顺序表操作中需要用到的变量及数据结构等。class DATA{原创 2017-12-19 03:05:04 · 457 阅读 · 0 评论 -
哈希表处理地址冲突的方法及成功查找的平均长度
首先通过一道例题来引出这篇博客的主旨: [腾讯]已知一个线性表(38,25,74,63,52,48),假定采用散列函数 h(key)=key%7 计算散列地址,并散列存储在散列表A[0…6]中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为多少?解析: h(key)=key%7 求得哈希地址(存在地址冲突) 线性探测再散列 查找长度 38%7=3原创 2017-12-18 13:13:57 · 4921 阅读 · 0 评论 -
排序算法 ✈
本部分排序算法知识已托管于Github,详见 排序算法总结 | 欢迎各位star排序算法的分类冒泡排序冒泡排序算法通过多次比较和交换来实现排序,其排序流程如下: 1. 对数组中的各数据,依次比较相邻的两个元素的大小。 2. 如果前面的数据大于后面的数据,就交换这两个数据。经过第一轮的多次比较排序后,便可以将最小的数据排好。 3. 再用同样的方法把剩余的数据逐个进行比较,最后便可以按照从小到原创 2017-12-21 22:01:38 · 290 阅读 · 0 评论 -
【数据结构与算法】-常见排序算法总结
Bubble(a); //冒泡SelectSort(a); //选择InsertSort(a); // 插入BinaryInsertSort(a); //二分ShellSort(a,dk,3); //ShellQSort(a, 0, a.length - 1); // 快速原创 2017-11-24 09:02:15 · 372 阅读 · 0 评论 -
图结构
无向完全图对于一个包含N个顶点的无向完全图,其总的边数为 N(N-1)/2 有向完全图对于一个包含N个顶点的有向完全图,其边的总数为 N(N-1),无向完全图的两倍。原创 2017-12-17 21:03:16 · 384 阅读 · 0 评论