数据结构
爱敲代码的super腾
努力敲代码ing。。。。。
展开
-
JAVA面试之二叉树问题
**最近刷面试题的时候发现各大公司对二叉树的算法情有独钟,所以花时间研究了一下,用JAVA实现了包括二叉树的添加节点,前序中序后序遍历,按层遍历,以及树的深度的计算。 在贴代码之前对树的原意考的基本理念复习一下。**树是属于一种非线性的数据结构存储分为顺序存储用数组和链式存储树通常研究的是二叉树二叉树又分为二叉堆和二叉查找树二叉堆一般用顺序存储来进行存储 因为二叉堆一般都是完全二叉树原创 2016-03-26 22:12:26 · 2502 阅读 · 0 评论 -
打印二叉树所有路径---JAVA实现
思路:把当前结点存储到数组当中,如果当前结点为叶子结点就打印当前数组,采取递归的方式来进行操作。技巧一:就是数组的问题,所有路径结点都存到一个数组当中,由于数组传递是传址,改变数组指向内容的时候其他传递当前数组的方法也会受到影响,所以在参数当中还需要一个整形的变量来控制当前这个数组长度,打印的时候只是打印这个长度的数组这样就可以进行区别了。技巧二:能进行这样的修改操作是因为程序是线性执行的不会产生数原创 2016-03-27 12:07:48 · 3884 阅读 · 1 评论 -
图的邻接矩阵存储---JAVA实现
摘要: 数据结构的一大特点就是用来存储数据的,作为图这种特别复杂的数据结构有三种存储方式,分别是邻接矩阵 邻接表 十字链表三种。本次来讨论邻接矩阵的存储方式。 邻接矩阵的思路: 在邻接矩阵中如果两个节点之间相连则用数字1来进行表示,如果两个节点之间没有边进行连接则用数字0来进行表示。节点初始的时候存储在一个集合或数组当中。二边则存储在一个整形的二维数组当中。 空间复杂度为:原创 2016-04-26 15:50:15 · 1344 阅读 · 0 评论 -
红黑树入门
红黑树要符合二叉查找树的基本特性: 每个节点至多只有两个孩子 左孩子的值小于父节点,右孩子的值大于父节点 扩展的一些特性: 每个节点不是红色节点就是黑色节点 根节点一定是黑色节点 叶子节点一定是黑色节点 每个红色节点的孩子都是红色节点 任意节点到叶子节点的路径上所包含的黑色节点数均相同 结构上的特点: 每个节点上的属性除了当前节点数据,左孩子以原创 2016-05-01 11:14:32 · 412 阅读 · 0 评论