数据结构和算法
文章平均质量分 68
Kerry得意洋洋
没事就喝冰美式和睡觉
展开
-
数据结构之堆
1.堆1.1堆的定义堆是计算机科学中一类特殊的数据结构的统称,堆通常可以 被看做是一棵完全二叉树的数组对象。1.2堆的特性:它是完全二叉树,除了树的最后一层结点不需要是满的,其 它的每一层从左到右都是满的,如果最后一层结点不是满的, 那么要求左满右不满。它通常用数组来实现。 具体方法就是将二叉树的结点按照层级顺序放入数组中,根结点在位置1,它的子结点在位置2和3,而子结点的子 结点则分别在位置4,5,6和7,以此类推。如果一个结点的位置为k,则它的父结点的位置为**[k/2],原创 2021-11-20 01:20:26 · 83 阅读 · 0 评论 -
C++后端学习路径
1. C++语言基础:经典书籍(有先后顺序):《C++ Primer》、《Effective C++》、《C++ 标准程序库》、《STL源码剖析》《深度探索C++对象模型》等2. 编程基础“四大件”基础四大件包括:数据结构和算法、计算机网络、操作系统、设计模式1、数据结构和算法LeetCode参考资料: 《大话数据结构》、《剑指offer》《LeetCode刷题》等2、计算机网络此处的计算机网络指的就是TCP/IP协议栈,可以说它是当下互联网通信的基石,无论如何一定要对TCP/IP的协议栈了原创 2021-11-20 00:59:49 · 2567 阅读 · 1 评论 -
数据结构之线性表(顺序表,链表)
1.线性表的特征:数据元素之间具有一种“一对一”的逻辑关系。第一个数据元素没有前驱,这个数据元素被称为头结点;最后一个数据元素没有后继,这个数据元素被称为尾结点;除了第一个和最后一个数据元素外,其他数据元素有且仅有一个前驱和一个后继。如果把线性表用数学语言来定义,则可以表示为:(a1,…ai-1,ai,ai+1,…an),ai-1领先于ai,ai领先于ai+1,称ai-1是ai的前驱元素,ai+1是ai的后继元素.2.线性表的分类:线性表中数据存储的方式可以是顺序存储原创 2021-11-20 00:58:11 · 314 阅读 · 0 评论 -
数据结构之栈
1.栈的定义栈是一种基于**先进后出(FILO)**的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。我们称数据进入到栈的动作为压栈,数据从栈中出去的动作为弹栈。2.栈的实现2.1 栈API设计2.2 栈代码实现import java.util.Iterator;public class Stack<T> implements原创 2021-11-20 00:56:19 · 196 阅读 · 0 评论 -
数据结构之符号表
1.符号表符号表最主要的目的就是将一个键和一个值联系起来,符号 表能够将存储的数据元素是一个键和一个值共同组成的键 值对数据,我们可以根据键来查找对应的值符号表中,键具有唯一性。符号表在实际生活中的使用场景是非常广泛的,见下表:1.1 符号表API设计结点类:符号表://符号表public class SymbolTable<key,value>{ //记录首结点 private Node head; //记录符号表中元素的个数 pri原创 2021-11-20 00:52:07 · 566 阅读 · 0 评论 -
数据结构之二叉树
1.树的特点:1.每个结点有零个或多个子结点;2.没有父结点的结点为根结点;3.每一个非根结点只有一个父结点;4.每个结点及其后代结点整体上可以看做是一棵树,称为 当前结点的父结点的一个子树;2.树的相关术语1)结点的度:一个结点含有的子树的个数称为该结点的度;2)叶结点:度为0的结点称为叶结点,也可以叫做终端结点3)分支结点:度不为0的结点称为分支结点,也可以叫做非终端结点4)结点的层次:从根结点开始,根结点的层次为1,根的直接后继层次为2,以此类推结点的层序编号:将树中的结原创 2021-11-20 00:48:48 · 238 阅读 · 0 评论 -
数据结构之队列
1.队列队列是一种基于 先进先出(FIFO) 的数据结构,是一种只能在一端进行插入,在另一端进行删除操作的特殊线性表,它 按照先进先出的原则存储数据,先进入的数据,在读取数据时先读被读出来。2. 队列的API设计队列的实现//队列代码import java.util.Iterator;public class Queue<T> implements Iterable<T>{ //记录首结点 private Node head; //记录最后原创 2021-11-20 00:45:31 · 98 阅读 · 0 评论 -
数据结构与算法 二分法(binarySearch)
数据结构与算法 之 二分法1.定义二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。target: 要查找的值left 和 right: 左右指针middle:左右指针的中点2.例题 leetcode 704:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回 -1。方法一:定义 target 在左闭右闭的区间里,也就是[left, right]/原创 2021-06-23 21:12:06 · 212 阅读 · 2 评论