标签:标准 数组元素 必须 定义 block 题目 条件 好处 ast
数据结构的动态表示
队列(queue):类似于列表,但队列元素存取方式有限制,队列采取先进先出(FIFO)的存取方式,即类似于生活中我们排队的情况,我们是从队尾入队,队首出队。
二叉树(binary tree)上,每个节点不能有超过两个的子节点。
图(graph):图没有类似于树根节点那样的初始入口点。在一个图中,一个节点到另一个节点的连接称为边,连接一个图内各节点的边数一般没有限制。
问题1解决方案:之前理解的是:类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。
对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。
类是对象的集合,对象是类的实例;对象是通过new className产生的,用来调用类的方法;类的构造方法 。
这个理解是对的,但是我没有看到他背后更根本的实现的方式。
ADT是一个包含数据和施加在这些数据类型上的操作的集合。对象实际上就是将相关变量和相关方法封装在一起的实体。对象隐藏了ADT背后的实现细节,并且将接口和底层的实现相分离,使得实现发生变化后并不影响接口。
问题2:class Node { int info; Node next; }
实例化两个Node对象,并使一个Node对象的变量next指向另一个Node对象,从而将两
个对象链接在一起。第二个对象的引用变量next又可指向更三个Node对象,依次类推,最后建立
起一个链表。
我以为我看懂了这句话,理解了链的结构,但是当在实现链表插入和删除方法的时候,我才发现其实自己根本就没有懂。(;′д`)ゞ
那么链表到底怎么理解呢?还有链表和LinkedList有什么关系呢?用链表来进行数据管理有什么好处呢?
问题2解决方案:
LinkedList类(链接列表)
LinkedList实现了List接口,允许null元素。但除了有List中所有方法以外,还有get,remove,insert以及最开头元素和最结尾元素等方法,而这些方法使得LinkedList既能当stack,queue和double-end queue(Deque)。
LinkedList是将每个对象存放在独立的内存空间中,而且,每个空间中还保存有下一个链接的索引(如果是双向链表,那么它还保存了上一个链接的索引。Java是双向链表)
对顺序访问进行了优化,向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时,永远不可能为基本情况。逻辑我是理解的,但是给出的选项没有理解好。
基于评分标准,我给本博客打分:XX分。得分情况如下:xxx
xxx
xxx
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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 |
20172310 2017-2018-2 《程序设计与数据结构》第十周学习总结
标签:标准 数组元素 必须 定义 block 题目 条件 好处 ast
原文地址:https://www.cnblogs.com/Qiuxia2017/p/9037932.html