Mainloop

栈是仅限在表尾进行插入和删除的线性表,遵循后进先出(Last In First Out LIFO)的原则。栈可以类比为一碟盘子,你只能访问顶部的盘子,而添加或删除盘子只能在顶部进行。 在计算机科学中,栈通常用于实现函数调用、递归、表达式求值等操作。我们一般可以用顺序表和链表来实现。 入栈 栈元素的插入操作叫做入栈,也可以称为进栈、压栈。直接将元素加到栈的顶部即可。这个操作类似于...

链表

用一组物理位置任意的存储单元来存放线性表的数据元素。这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。 链表中元素的逻辑次序和物理次序不一定相同。 基本概念 数据域 存储数据元素信息 指针域 存储直接后继位置 指针和链 指针域中存储的信息 单链表/线性链表 结点只有一个指针域的链表 双链表 结点有两个指...

线性表

线性表是具有相同特性的数据元素的一个有限序列。 线性表中数据元素的类型可以为简单类型,也可以为复杂类型。许多实际应用问题所涉及的基本操作有很大相似性,不应为每个具体应用单独编写一个程序。 从具体应用中抽象出共性的逻辑结构和基本操作(抽象数据类型),然后实现其存储结构和基本操作。 ADT 数据对象 每个元素类型均为DateType类型的集合 \(\{ a_1, a_2, a_...

手撕指针第一章 | 声明

指针是C语言为什么如此流行的一个重要原因,他可以有效实现诸如 tree 和 list 这类高级数据结构。用C语言可以比使用其他语言编写出更为紧凑和有效的程序。 谈起指针,我们要从变量开始说起,相信大家对变量都不陌生。变量的值存储于计算机的内存中,每个变量都占据一个特定的位置。每个位置都由地址唯一确定并引用,就像一条街道上的房子由他们的门牌号码来标识一样。指针只是地址的另一个名字罢了,它就是...

手撕泛型

泛型(generic) 是一种编写更通用(泛型、通用是同一个英语单词,generic)的代码的方法,意为是用或者可兼容大批的类。 一定程度上可以理解为标签,JDK5.0新增特性。所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定——即传入...