![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
张先生和他的金毛
每一个不曾起舞的日子,都是对生命的辜负。
展开
-
哈夫曼树(最优二叉树)原理及实现
目录简介相关概念哈夫曼树实现实现原理:实现代码:代码实现步骤:简介哈夫曼树又被称为最优二叉树,是一类带权路径最短的二叉树。哈夫曼树是二叉树的一种应用,在信息检索中很常用。相关概念节点之间的路径长度:从一个节点到另一个节点之间的分支数量称为两个节点之间的路径长度。 树的路径长度:从根节点到树中每一个节点的路径长度之和。 节点的带权路径长度:从该节点到根节点之间的路径长度与节点上权的乘积。 树的带权路径长度:树中所有叶子节点的带权路径长度之和。哈夫曼树实现原创 2020-07-12 17:49:58 · 1464 阅读 · 0 评论 -
二叉树原理及实现
目录二叉树介绍为什么会有二叉树?什么是二叉树?什么是满二叉树?什么是完全二叉树?二叉树的特点:二叉树实现方式二叉树的顺序存储二叉树的二叉链表存储二叉树的三叉链表存储二叉树介绍为什么会有二叉树?对于普通树来说,除了根节点之外,其余子节点的个数并没有要求,遵循的规律太少,程序控制起来较复杂,因此限制了它在实际应用中的使用。由此,为了在实际应用中更好的使用树结构,便在普通树的基础上增加了一些限制,让每一棵树中的每个节点最多只能包含2个子节点,而且严格区左子节点.原创 2020-07-11 10:36:00 · 857 阅读 · 0 评论 -
树结构以及简单实现
树简介树结构,一种非线性结构,指的是N个有父子关系节点的有限集合。树中任一节点可以有0或多个子节点,但只能有一个父节点。根节点是一个特例,根节点没有父节点,叶子节点没有子节点。树中每个节点既可以是其上一级节点的子节点,也可以是下一级节点的父节点,因此同一个节点可以既是父节点,也是子节点。如果按节点是否包含子节点来分,节点分成以下两种:普通节点:包含子节点的节点。 叶子节点:没有子节点的节点,因此叶子节点不可作为父节点。如果按节点是否具有唯一的父节点来分,节点又可分为如下两种:根节原创 2020-07-05 16:08:58 · 427 阅读 · 0 评论 -
队列(queue)原理及实现
队列简介队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,只允许在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。根据其特征,把队列简称为先进先出(FIFO)的线性表。队列的常用操作如下:初始化:通常是一个构造器,用于创建一个空队列。 返回队列的长度:该方法用于返回队列中数据元素的个数。 加入元素:向队列的rear端插入一个数据元素,队列的长度+1。 删除元素:从队列的front端删除一个数据元素,队列长度-1,该方法通常返原创 2020-07-04 15:40:29 · 1094 阅读 · 0 评论 -
栈(Stack)原理及实现
目录栈概述顺序结构实现链表结构实现栈概述栈是一种数据结构,它代表只能在某一端进行插入、删除操作的特殊线性表,通常就是在线性表的尾端进行插入、删除操作。允许进行插入、删除操作的一端被称为栈顶(top),另一端则被称为栈底(bottom)。归纳起来:栈就是一种后进先出(LIFO)的线性表。栈常用操作:初始化:通常是一个构造器,用于创建一个空栈。 返回栈的长度:该方法用于返回栈中数据元素的个数。 入栈:向栈的栈顶插入一个数据元素,栈的长度+1。 出栈:从栈的栈顶删除...原创 2020-06-12 19:08:21 · 738 阅读 · 0 评论 -
线性表(Linear List)原理及实现
目录前言一、线性表概述二、顺序存储结构三、链式存储结构3.1 单链表3.2 循环链表3.3 双向链表四、顺序和链式对比前言 编程的本质就是对数据的处理。由于实际业务的数据之间存在复杂的逻辑关系,应用程序则需要分析这些数据的逻辑结构,并采用合适的物理结构来存储这些数据,并以此为基础对这些数据进行响应的操作。 从数据的逻辑结构来分,数据元素之前存在的关联关系被称为数据的逻辑结构。归纳起来,大致有一下4类基本的逻辑结构:集合:数据元素之间只有“同属于一个...原创 2020-06-06 21:02:11 · 2915 阅读 · 0 评论