数据结构的动态表示
html
队列(queue):相似于列表,但队列元素存取方式有限制,队列采起先进先出(FIFO)的存取方式,即相似于生活中咱们排队的状况,咱们是从队尾入队,队首出队。
node
二叉树(binary tree)上,每一个节点不能有超过两个的子节点。
git
图(graph):图没有相似于树根节点那样的初始入口点。在一个图中,一个节点到另外一个节点的链接称为边,链接一个图内各节点的边数通常没有限制。
数组
数据结构_非线性结构_图数据结构
问题1解决方案:以前理解的是:类就是具有某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具备相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。
对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每个实体都是一个对象,因此对象是一个具体的概念。
类是对象的集合,对象是类的实例;对象是经过new className产生的,用来调用类的方法;类的构造方法 。
这个理解是对的,可是我没有看到他背后更根本的实现的方式。
ADT是一个包含数据和施加在这些数据类型上的操做的集合。对象实际上就是将相关变量和相关方法封装在一块儿的实体。对象隐藏了ADT背后的实现细节,而且将接口和底层的实现相分离,使得实现发生变化后并不影响接口。学习
问题2:class Node { int info; Node next; }
优化
实例化两个Node对象,并使一个Node对象的变量next指向另外一个Node对象,从而将两
个对象连接在一块儿。第二个对象的引用变量next又可指向更三个Node对象,依次类推,最后创建
起一个链表。.net
我觉得我看懂了这句话,理解了链的结构,可是当在实现链表插入和删除方法的时候,我才发现其实本身根本就没有懂。(;´д`)ゞ
那么链表到底怎么理解呢?还有链表和LinkedList有什么关系呢?用链表来进行数据管理有什么好处呢?设计
LinkedList类(连接列表)
LinkedList实现了List接口,容许null元素。但除了有List中全部方法之外,还有get,remove,insert以及最开头元素和最结尾元素等方法,而这些方法使得LinkedList既能当stack,queue和double-end queue(Deque)。
LinkedList是将每一个对象存放在独立的内存空间中,并且,每一个空间中还保存有下一个连接的索引(若是是双向链表,那么它还保存了上一个连接的索引。Java是双向链表)3d
对顺序访问进行了优化,向List中间插入与删除得开销不大,随机访问则相对较慢(由于LinkedList是必须从头开始搜索,可用ArrayList代替)。它具备方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast(),linkedList也是不一样步的。
再给你们一篇参考Linked List 链表详解
链表是一种动态结构,一般是将它与静态的数组相比较
相对于数组来讲:
优势: 经过索引(数组下标)能够很快地访问数组元素;
缺点: 插入/删除元素须要对数组进行调整, 效率低;
而链表:
优势:插入/删除速度很快,并且不用对整个链表进行调整;
缺点:只能进行顺序访问,不能随机访问(像数组同样用下标)。
index > 0
又给了我一个小经验,必定注意循环的条件要好好设计。
若是J等于a的长度,返回false;若是j=b的长度而不等于a的长度,返回true;既不等于a的长度,又不等于b的长度,则调用递归计算(a,b,j+1)。我当时的判读是反了的,应该是只有当a的长度大于b的长度时,才会返回true。
递归的状况是用相同的参数调用本身的方法,因此n不会改变,所以若是(n-0)最初是正确的,它仍然是正确的。但当n>0时,永远不可能为基本状况。逻辑我是理解的,可是给出的选项没有理解好。
时间过得真的很快,一会儿这么厚的一本课本就翻到了最后一页。可是“学习本无底,前进莫徬徨。”
但说句实话,我对课本的掌握的仍是很差,因此我必定要好好复习,一有时间就该拿起课本看看,而不该该抱着学完就完事的想法,最后相告诉你们一句话
对世界上的一切学问与知识的掌握也并不是难事,只要锲而不舍地学习,努力掌握规律,达到熟悉的境地,就能融会贯通,运用自如了。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 127/127 | 1/1 | 25/25 | |
第二周 | 278/405 | 1/2 | 20/45 | |
第三周 | 442/847 | 1/3 | 20/65 | |
第四周 | 1063/1910 | 2/5 | 30/95 | |
第五周 | 840/2750 | 1/6 | 27/122 | |
第六周 | 631/3381 | 1/7 | 20/142 | |
第七周 | 914/4295 | 1/8 | 20/162 | |
第八周 | 2534/6829 | 2/10 | 30/192 | |
第九周 | 252/7081 | 3/13 | 26/218 | |
第十周 | 630/7711 | 1/14 | 27/245 |