
数据结构
你的橙子
一个安静的美女子
展开
-
数据结构【十】- 递归【三】链表增删改查的递归实现
一。需求我们对在数据结构【五】- 链表【链表的介绍和实现:增删改查】中,链表的增删改查用递归的方式实现。二。代码准备package recursion;import LinkedList.LinkedListRmove.ListNode;public class LinkedList_Recursion<E> { public class Node{ ...原创 2019-12-26 20:44:06 · 418 阅读 · 0 评论 -
数据结构【九】- 递归【二】链表的天然递归性 / 用递归解决链表中删除元素的问题 /递归算法的调式
一。链表的天然递归性对于一个链表,我们可以把它看成:【0节点】+【一个更短的链表(少了0节点的其他节点)】 【一个更短的链表(少了0节点的其他节点)】=【1节点】+【一个更短的链表(少了0和1节点的其他节点)】 ................以此类推.................. 【一个更短的链表(少了0,1,2...原创 2019-11-30 14:15:10 · 584 阅读 · 0 评论 -
数据结构【八】- 递归【一】递归的本质/ 递归的宏观语意/ 写递归算法的基本原则/ 递归函数的“微观”解读
一。递归的本质 本质上,递归就是将原来的问题,转化为更小的同一问题。二。递归的举例更多链表问题搜索:LinkedListProblems.pdf(一)例子 用递归来写数组求和(二)思路1. 对一个数组求和就等于:将【数组总和】=【数组的第0个数】+【数组中从1索引到...n-1这个索引的和】。这个时候,Sum(arr[1.....原创 2019-10-10 16:27:43 · 488 阅读 · 0 评论 -
数据结构【七】- 链表案例--删除某个特定值的所有元素
一. 删除链表中的等于给定值val的所有元素(一)目的给定:1--> 2 --> 6 --> 3--> 4--> 5--> 6, val =6返回:1--> 2 -->3--> 4--> 5(二)ListNodepublic class ListNode { int val; List...原创 2019-10-10 15:57:27 · 356 阅读 · 0 评论 -
数据结构【六】- 链表实现栈和队列
一. 使用链表实现栈1. 原理 需求:由于栈是一个后入先出的结构,它只对栈的一段操作。无论是增加元素,删除元素,查看元素,都在栈顶进行。所以对于链表来说,我们的在添加和删除链表头的时间复杂度是O(1)。所以我们这里将链表头作为栈顶。 解决: (1)利用我们在【数据结构【二】-栈】中的栈的接口,来使用链表实现栈public interface Stack...原创 2019-10-10 17:10:02 · 381 阅读 · 0 评论 -
数据结构【五】- 链表【链表的介绍和实现:增删改查】
一. 什么是链表(一)线性数据结构 我们之前已经学习了三种线性数据结构。他们的底层依然是“依托静态数组”,靠resize解决固定容量问题。动态是相对用户来说的。但是链表是真正的动态数据结构。动态数组 栈 队列 链表 -- 真正的动态数据结构(二)为什么说链表很重要是真正的 / 最简单的动态数据结构。如果对于链表学习有基础,有利于学习更加复杂的动态数据结构...原创 2019-03-06 21:58:31 · 558 阅读 · 0 评论 -
数据结构【二】-栈
一。栈和栈的应用 撤销操作和系统栈1. 简介 1.1 栈Stack (1)栈是一种线性结构 (2)相比数组,栈对应的操作是数组操作的子集。 (3)栈的本质就是一个数组,我们把数据排开来放,但是规定: 添加元素的时候只能从一端添加元素,也只能从一端取出元素。 这一段通常称为“栈顶” ...原创 2019-02-20 23:28:34 · 316 阅读 · 0 评论 -
数据结构【一】--数组
一.基本实现public class ArrayDemo {--> Array<E> private int size;//指向当前元素 private int[] dataArr; ->E[]dataArr;//表示元素个数- public ArrayDemo(int capacity){ dataArr = n...原创 2019-02-20 23:15:03 · 200 阅读 · 0 评论 -
数据结构【三】-队列Queue 1
一.简介 1)队列也是一种线性结构 2)相比数组,队列对应的操作是数组的子集 3)只能从一端(队尾)添加元素,从另一端(队首)取出元素 排队从队尾进入,等办完业务之后,1先出,也就是队首先出。 队尾 ...原创 2019-02-25 21:54:58 · 230 阅读 · 0 评论 -
数据结构【四】-队列2【循环队列】
一。背景 如果我们想删除队首的元素,这个时候,如果是上面提到的[数组队列],就会变成O(n)的复杂度,因为所有的元素都要向前移动一个单位。 但是我们想让这个操作的变成一个O(1)的复杂度,就需要 : 循环队列二。想法 1. 我们删除了data[0]的元素,就剩下4个元素[b,c,d,e],但是我们不挪动其他元素的位置。 2. 这样我们可以在数组中记录队首的位置,记为fro...原创 2019-03-04 22:10:03 · 306 阅读 · 0 评论 -
如何将一个String类型的数据转化为Map类型
将下面这个String数据转化为Map。String mapStr = {Papua New Guinea=166, Cambodia=109, Kazakhstan=117,Saint Martin=297, Cocos (Keeling) Islands=36, Malawi=147, Andorra=1, Liechtenstein=121, Poland=169, Bulgaria=22,原创 2017-12-26 13:02:51 · 15742 阅读 · 0 评论