随笔分类 -  数据结构

摘要:暂时接触到LeetCode上与链表反转相关的题目一共有3道,在这篇博文里面总结一下。首先要讲一下我一开始思考的误区:链表的反转,不是改变节点的位置,而是改变每一个节点next指针的指向。 下面直接看看LeetCode上的题目: 206. Reverse Linked List 这是一道最基本的链表反 阅读全文
posted @ 2018-01-04 00:29 fengzw 阅读(2088) 评论(0) 推荐(0)
摘要:栈是先进后出,队列是先进后出,这里讨论一下两种数据结构之间的相互实现。 一.用两个栈实现队列 我们用一个栈来实现队列的进队操作(栈A),用另一个栈来实现队列的出队操作(栈B)。 1.入队列: 把元素放进栈A即可。假如栈A已满并且栈B为空,可以先把栈A中的所有元素先弹出并放入栈B中;假如栈B不为空,则 阅读全文
posted @ 2017-12-31 13:31 fengzw 阅读(904) 评论(0) 推荐(0)
摘要:这篇文章讨论一下与链表的环相关的题目,我目前遇到的一共有3种题目。 1.判断一个链表是否有环(LeetCode相关题目:https://leetcode.com/problems/linked-list-cycle/description/) 设置两个指针,初始值都指向头,一快一慢,slow每次前进 阅读全文
posted @ 2017-12-28 21:40 fengzw 阅读(411) 评论(0) 推荐(0)
摘要:二叉搜索树的特殊性质 阅读全文
posted @ 2017-11-30 21:29 fengzw 阅读(175) 评论(0) 推荐(0)
摘要:最近在做LeetCode上面有关二叉树的题目,这篇博客仅用来记录这些题目的代码。 二叉树的题目,一般都是利用递归来解决的,因此这一类题目对理解递归很有帮助。 1.Symmetric Tree(https://leetcode.com/problems/symmetric-tree/descripti 阅读全文
posted @ 2017-11-28 20:04 fengzw 阅读(354) 评论(0) 推荐(0)
摘要:1.满二叉树: 除了最后一层无任何子结点外,每一层上的所有结点都有两个子结点的二叉树。 2.完全二叉树: 设一棵二叉树深度为h。除了第h层外,其它各层的结点数都达到最大个数,且第h层(最下面一层)的所有结点都连续集中在最左边。 满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。 3.平衡二叉树: 阅读全文
posted @ 2017-11-25 21:40 fengzw 阅读(3685) 评论(0) 推荐(0)
摘要:1.文字描述: 已知一颗二叉树的前序(后序)遍历序列和中序遍历序列,如何构建这棵二叉树? 以前序为例子: 前序遍历序列:ABCDEF 中序遍历序列:CBDAEF 前序遍历先访问根节点,因此前序遍历序列的第一个字母肯定就是根节点,即A是根节点;然后,由于中序遍历先访问左子树,再访问根节点,最后访问右子 阅读全文
posted @ 2017-11-24 18:56 fengzw 阅读(17501) 评论(1) 推荐(0)
摘要:算法期中考遇到一道合并二叉树的题目的题目,感觉对理解二叉树的归并和二叉树本身这个的数据结构都挺有帮助,因此记录下来: 题目: 代码: 阅读全文
posted @ 2017-11-14 20:02 fengzw 阅读(862) 评论(0) 推荐(0)
摘要:这篇文章只是简单地记录一下图的存储方式,因为自己经常会忘记…… 图有两种存储方式——邻接矩阵和邻接表。 1.邻接矩阵 图的邻接矩阵存储要用到一个一维数组和一个二维数组。一维数组用来存储图中的顶点信息,二维数组用来存储图中的边的信息(是否相连、权值大小) 2.邻接表 边数相对顶点较少的图,使用邻接矩阵 阅读全文
posted @ 2017-10-31 21:43 fengzw 阅读(605) 评论(0) 推荐(0)