
数据结构与算法
文章平均质量分 78
常见数据结构与算法分享
1 + 1=王
优快云博客专家;
优快云优质创作者;
阿里云社区专家博主;
华为云云享专家;
51CTO专家博主;
热爱JAVA的计算机科学与技术(人工智能)研究生在读;
全国大学生计算机设计大赛国家二等奖;
三维数字化创新设计大赛四川省特等奖、国家三等奖;
蓝桥杯全国软件与信息技术专业人才大赛三等奖;
MathorCup数学建模挑战赛三等奖.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
回溯算法基本思想及其实现
在深度优先搜索的过程中,当搜索到某一层时,根据问题的限制条件判断该层的节点状态是否满足条件。如果条件不满足,则这个节点的状态被排除,并回溯到当前节点的父节点,重新进行遍历。如果条件满足,则继续搜索下一层的节点,并重复以上操作,直到搜索到一个符合条件的解或者遍历完整个解空间。如果递归过程中发现当前状态不符合要求,则需要撤销前面的选择,回到上一层状态,重新开始搜索。它的基本思想是从可能的决策开始搜索,如果发现这条路往下走不能得到有效的解答,就返回上一层重新选择另外一种可能的决策,并且重复以上的步骤。原创 2023-06-15 18:35:53 · 1912 阅读 · 1 评论 -
【算法导论】第2章 算法基础
2.1 插入排序2.1-1 说明INSERTION-SORT在数组A=<31,41,59,26,41,58>上的执行过程。2.1-2 重写过程INSERTION-SORT,使之按非升序排序。2.1-3 考虑以下查找问题:输入:n个数的一个序列A=<a1,a2,a3,…,an>和一个值v。输出:下标i使得v=A[i]或者当v 不在A中出现时,v为特殊值NIL。2.1-4 把两个n为二进制整数加起来,这两个整数分别存储在两个n元数组A和B中。这两个整数的和应按照二进制形式存原创 2021-01-20 17:06:10 · 683 阅读 · 0 评论 -
树、二叉树和森林的表示及相互转换
树、二叉树和森林相关概念树的基本概念二叉树的基本概念存储结构二叉树的存储结构树的存储结构树、二叉树和森林的相互转换树转换为二叉树森林转换为二叉树二叉树转换为森林相关概念树的基本概念树的定义:树是n(n >= 0)个节点的有限集。当n=0是,称为空树。树的特点:(1)树的根没有前驱,除根外的其他节点有且仅有一个前驱;(2)每个节点都可以有零个或多个后继。术语:(1)节点的度:树中一个节点的孩子个数。(2)树的度:树中节点的最大度。(3)分支节点:度大于0的节点。(4)叶子结点:原创 2021-08-07 17:20:33 · 6471 阅读 · 0 评论 -
算法与算法分析
算法与算法分析算法是,对特定问题求解方法和步骤的一种描述,它是有限指令的有限序列,其中每个指令表示一个或多个操作。算法与程序的比较算法是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。程序是用某种程序设计语言对算法的具体实现。程序 = 数据结构 + 算法算法的特性一个算法必须具备以下五个重要特性:有穷性 一个算法必须总是在执行有穷步之后结束,且...原创 2019-11-06 21:13:23 · 1284 阅读 · 1 评论 -
顺序表的基本操作代码实现
顺序的基本操作代码实现(初始化、插入、删除、销毁等等)1.标头.h#pragma once#include<stdio.h>#include<stdlib.h>/* @author:W.yu @Data:2020-04-27*/#define INITSIZE 10 //定义顺序表的初始最大长度typedef struct { int* data...原创 2020-04-28 17:13:15 · 2619 阅读 · 0 评论 -
遍历二叉树的代码实现
二叉树的遍历先序遍历(根--左--右)递归法非递归法中序遍历(左--根--右)递归法非递归法后序遍历(左--右--根)递归法非递归法层序遍历先序遍历(根–左--右)递归法void PreOrder(BiTree T){ if(T != NULL){ visit(T); //访问根节点 PreOrder(T->lchild); //递归遍历左子树 PreOrder(T->rchild); //递归遍历右子树 }}非递归法void PreOrder(BiTree原创 2021-08-08 15:15:53 · 1755 阅读 · 0 评论 -
哈希表的表示
哈希表几个概念哈希函数的构造方法处理冲突的方法几个概念哈希函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,记为H(K)。冲突:对不同的关键字可能得到同一哈希地址的现象,即key1 != key2,而H(key1)=H(key2)。同义词:发生冲突的不同关键字。哈希表:根据关键字直接进行访问的数据结构,建立了关键字与存储地址之间的一种直接映射关系。哈希函数的构造方法(1)直接定址法取关键字或关键字的线性函数值为哈希地址,即H(key)=key或H(key)=a*key+b。这原创 2021-08-15 15:33:42 · 434 阅读 · 0 评论 -
图的概念及其表示
图的概念及其表示图的定义及相关术语图的存储结构邻接矩阵法邻接表法邻接多重表十字链表图的定义及相关术语图的定义:V表示由顶点的有穷非空集合,G图的存储结构邻接矩阵法邻接表法邻接多重表十字链表...原创 2021-08-10 11:28:52 · 1515 阅读 · 0 评论 -
栈和队列的表示及实现
栈和队列栈的相关概念顺序栈的表示及实现栈的抽象数据类型的类型定义顺序栈的表示顺序表的基本操作顺序栈的初始化判断栈是否为空顺序栈的入栈顺序栈的出栈链栈的表示链栈的入栈链栈的出栈队列的基本表示及操作顺序队列循环队列的初始化求循环队列的长度循环队列的入队循环队列的出队链队列链队列的类型定义链队列初始化链队列入队链队列出队栈的相关概念栈(stack)是一个特殊的线性表,是限定在仅在一端进行插入和删除...原创 2019-11-30 19:32:36 · 862 阅读 · 0 评论 -
线性表的链式表示及实现
线性表的链式表示及实现链式存储相关概念单链表单链表的存储结构单链表的操作单链表的初始化销毁单链表L清空链表L求单链表的表长查找第i个元素安值查找单链表的插入单链表的删除头插法建立链表尾插法建立链表循环链表双向链表双向链表的存储结构双向链表的操作双向链表的插入双向链表的删除链式存储总结顺序表和链表的比较链式存储相关概念用一组物理地址任意的存储单元来存放线性表的数据元素;这组存储单元可以是连续...原创 2019-11-16 22:29:53 · 1247 阅读 · 0 评论 -
线性表的顺序表示及实现
线性表的顺序表示及实现线性表的定义和特点1. 定义2.线性表的逻辑特征线性表的顺序表示顺序表的基本实现总结线性表的定义和特点1. 定义线性表(Linear List):由n(n>=0)个具有相同特性的数据元素(结点)a1,a2, … , 组成的有限序列。其中数据元素的个数n定义为表的长度;当n = 0 时称为空表;将非空的线性表(n>0)记作:(a1 , a2 , … ,...原创 2019-11-09 22:29:09 · 1324 阅读 · 0 评论 -
数据结构(C语言)Learning Way
一、First of all 基本术语一、数据1.数据数据(Data)数据元素(Data element)数据对象(Data Object)2.数据结构逻辑结构物理结构3.数据类型4.总结逻辑图功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个...原创 2019-11-04 21:55:46 · 798 阅读 · 0 评论 -
【算法导论】第1章 算法在计算中的作用
第1章 算法在计算中的作用1.1-1 给出生活中需要排序的一个例子或者现实生活中需要计算凸壳的例子。排序:招生考试中将考生的成绩从高到低排序,择优录取。计算凸壳:墙面安装了520个小灯泡,以其中一些灯泡为顶点组成的凸多边形为电线线路,线路包含所有520个灯泡,找出使线路构成的凸多边形达到最小的所有灯泡。1.1-2 除速度外,在真实环境中还可能使用哪些其他哪些有关效率的量度?占用资源大小、结果精度等等。1.1-3 选择一种你以前已知的数据结构,并讨论其优势和局限。单链表优势:不需要原创 2021-01-18 14:00:14 · 650 阅读 · 2 评论