篮球是爱好,代码是工作,阿紫是梦想,跟着爱打篮球的程序员学编程,享受运动中的编程,编程中的运动!
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 详细介绍请查看博主C语言实现数据结构专栏!
上期我们实现了一下单链表,在Java(1.8)中,链表为 LinkedList,而底层是一个双向链表,跟 ArrayList 一样,LinkedList 也实现了 List 接口,这里我们画一个图,让大家简单见识下双向链表:
上期我们实现了一下单链表,在Java(1.8)中,链表为 LinkedList,而底层是一个双向链表,跟 ArrayList 一样,LinkedList 也实现了 List 接口,这里我们画一个图,让大家简单见识下双向链表
链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。
链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组上完成数据的增删查改。
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组上完成数据的增删查改。
顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,在数组上完成数据的增删查改。
通过前面JavaSE的语法知识储备,如果现在让你们创建如标题一样的数组,你会怎么创建呢?
通过前面JavaSE的语法知识储备,如果现在让你们创建如标题一样的数组,你会怎么创建呢?
在我们前面也对字符串进行了简单的使用,在Java当中,String是字符串类型,本质上也是一个类,这个类中提供了很多的方法,我们后续会学习到,现在先来简单看一下String类常见的构造方法
首先来看到抽象这两个字,抽象其实是与具体对应的概念,在我们面向对象的概念中,所有的对象都是由类来描述的,如果我们反过来呢?
如果把封装的概念放在语言中,那就是:将数据和操作数据的方法进行结合,隐藏对象的属性,和实现细节,仅仅对外公开接口来和对象进行交互。
假设说我们要存每个同学的期末考试总成绩,如果我们还不知道数组的话,那我们是不是得新建100个变量,而且赋值和打印也相当的麻烦, 而且我们发现成绩的数据类型都是一样的,所以就会有数组这个概念,数组即是相同类型元素的集合,而且是一块连续的存储空间,每个空间都有编号,也就是我们口中常说的数组下标。
提到分支语句我们都不陌生,比如我们生活中都要面临着种种选择,而每个选择对应着不同的结果,我们的程序也是有许许多多的分支构成的,在Java中为我们提供了两种分支语句:if 和 switch语句,下面我们就来学习下这两个语句。
在我们C语言深度解剖的专栏已经讲解了一些常见的运算符了,但是基本的 + - * / 没有细说,毕竟那是深度解剖,是在一定基础上更深入学习的,我们 Java 是从 0 基础讲解的,所以这里会涉及到很全面的操作符
本期我们正式开始进入 Java 的学习,在正式开始之前,我们需要简单的认识下 Java 中的常量。
这里我们先阐述一个问题,为什么很多人会混用指针变量和指针呢?其实说法不是完全错误,为什么呢?请看如下代码:
有人说,数组有什么可讲的,不就是一堆相同数据类型元素类型的集合吗,确实是这样,在我学习学校C语言的时候,我清晰的记得我们老师很笼统的讲了一下基本知识,并没有深剖,如果你认为数组简单,但它确实有你值得研究的地方。
C语言提供的条件编译的功能可以让我们按照不同的条件去编译不同的程序部分,从而产生不同目标代码文件。
宏定义数值常量相信大家都不陌生,相信很多小伙伴用过,这里我们就简单的提一下,我们前面也讲过,#define 本质上是替换,它可以出现在代码的任何地方,也可以把任何东西都定义成宏,编译器会在预编译的时候进行替换掉
为了更好的演示我们下面的代码会在 Linux 平台下演示( \ 为续行符)
本期我们接着深度解剖C语言——关键字篇:
今天来放松一下, 一起来写一个简易的小游戏——三子棋:
今天我们会穿插着讲一些关键字之外的内容
上期我们讲完了排序算法下,不知道小伙伴们有没有发现一个问题,快速排序和归并排序我们都是用递归来实现的,可能有小伙伴会问,如果说数据量很多话,栈区空间会不会不够用呢?这期我们就来解决使用递归实现的排序导致栈溢出如何解决?
上期学习完了前四个排序,这期我们来学习剩下的三个排序:
时间如流水,今天就到初阶数据结构最后一个知识章节了,常见的排序算法!在进入这期之前,程爱打篮球的程序猿想说一句,如果有不懂的地方可以反复观看我之前的内容,再还有不懂可以直接找我,帮你安排的妥妥的!
上期结束了栈和队列,这期呢来到了数据结构初阶的一个新台阶,我们讲学习一个非线性结构,二叉树,学完本期,你的数据结构将会跨上一个新的台阶,废话不多说,我们直接进入本期的主题!
可算是把链表给结束了,很多小伙伴已经迫不及待想看到栈和队列了,那么它来了!相信有了顺序表和链表的基础,栈和队列对于你们来讲也是轻轻松松
相信如果看完了上期顺序表的小伙伴应该发现了顺序表的诸多缺点:
别别着急划走哈,如果你跟我一样是大学生,那么你发现了一个宝藏!我们往后看-->