![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 50
「已注销」
这个作者很懒,什么都没留下…
展开
-
指针的那些事(C语言)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、指针变量和变量的指针?二、指针变量:总结前言指针是变量的内存地址,就是变量的身份特征;就像每个人出生都会有 一个身份证号一样;一、指针变量和变量的指针?指针变量:存储指针的变量;有对应的数据类型;变量的指针:变量的存储地址;上面搞清楚短语的主语和定语成分.原创 2021-05-25 15:58:53 · 164 阅读 · 3 评论 -
动态内存分配(C语言)
在考研复习二轮的数据结构的时候,发现一个之前比较模糊的点,今天来补补课。动态内存分配不放过每一个值得关注的点文章目录动态内存分配前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言我们创建一个一维的数组的时候,可以是静态分配的,也可以是动态分配的。静态分配时,如果不能很好的把握数组的大小,有可能会出现数据量较小,浪费空间;或者是空间较小,数据溢出导致程序崩溃的情况。而动态分配时,存储数组的空间是在程序执行过程中通过动态存储分配语句分配的,一旦数据空间占满,就开辟一块.原创 2021-05-13 20:55:54 · 8615 阅读 · 15 评论 -
顺序表的创建
三个朋友今天全部上岸大厂,祝贺。(太羡慕了)静态分配创建一个顺序表;1.顺序表的定义:#define MaxSize 10typedef struct { ElemType data[MaxSize]; int length;}SqlList;这里我们用结构体的方式定义以一个顺序表;用静态数组存放数据元素;定义一个存放表长度的变量;这里我们用了静态分配的方式定义了一个顺序表;2.顺序表的初始化#include<stdio.h>#include<math.h&g..原创 2021-04-25 20:32:33 · 9929 阅读 · 0 评论 -
C++中&操作
#include<stdio.h>#include<math.h>#include<iostream>#include<string.h>using namespace std;void test(int x) { x = 1024; printf("test函数内部 x=%d\n",x);}int main() { int x = 1; printf("调用test之前 x=%d\n",x); test(x); printf(".原创 2021-04-25 19:10:07 · 651 阅读 · 0 评论 -
单链表反转
反转单链表package LinkedList.test;/** * @version 1.0 * @auther WangCode * @date 2021/4/3 16:08 */public class SingleLinkedListTest { public static void main(String[] args) { Node n1 = new Node(1, "123"); Node n2 = new Node(2, "23").原创 2021-04-03 21:16:32 · 68 阅读 · 0 评论 -
查找单链表中倒数第k个节点
问题:查找单链表倒数第k个节点解决方案:思路先获取链表的长度length,判断k的合法性,以及k的位置要找的节点就在length-k处(视情况)查找倒数第k个节点 /** * 查找倒数第k个节点 * @param head 链表的头节点 * @param index 表示要查找结点的逆序下标 * @return 返回倒数第index个个点 */ public Node getK(Node head,int index){ .原创 2021-04-03 18:47:37 · 588 阅读 · 0 评论 -
求单链表中有效节点的个数
问题描述:求单链表有效节点的个数。解决方案:package LinkedList.test;/** * @version 1.0 * @auther WangCode * @date 2021/4/3 16:08 */public class SingleLinkedListTest { public static void main(String[] args) { Node n1 = new Node(1, "123"); Node n2 .原创 2021-04-03 16:55:57 · 542 阅读 · 0 评论 -
链表
链表链表是一种常见的数据结构,是一种线性表,但是它不会按照线性的顺序存储数据,而是每个结点里存到下一个结点的指针。链表是由数据域和指针域两部分组成。复杂度分析:由于链表无需按照顺序存储,因此链表在插入的时候可以达到O(1)的复杂度,比顺序表快的多;但是查找一个节点或访问特定编号的结点则需要O(n)的时间,而顺序表的插入和查询的时间复杂度分别是 O(log n) 和 O(1)。优缺点分析:使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内.原创 2021-04-03 14:30:47 · 96 阅读 · 0 评论 -
选择排序
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。package sort;import java.util.Arrays;/** * @version 1.0 * @auther WangCode * @date 2021/3/20 22:01 */public class SelectSort { public sta.原创 2021-03-20 22:15:00 · 45 阅读 · 0 评论 -
冒泡排序
内心的不平静来自于不自律文章目录冒泡排序代码优化:性能测试:冒泡排序通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部;package bubble;import java.util.Arrays;/** * @version 1.0 * @auther WangCode * @date 2021/3/20 20:54 */public class Bubble { public static .原创 2021-03-20 21:46:28 · 82 阅读 · 0 评论 -
图(广搜、深搜)
It is our moment to dance文章目录一、图的介绍无向图有向图带权图图的表示方式:二、使用步骤1.引入库2.读入数据总结一、图的介绍下面的是一些基本的概念了解就好;图是一种数据结构,结点可以具有零个或多个相邻结点,两个结点之间的连接称为边,结点也可以称为顶点;图的构成元素就是顶点和边了;路径:两个结点走过的结点和边;无向图无向图:顶点 之间的连接没有方向,相邻结点(A、B)A可以到B当然B也可以到A;有向图有向图:顶点之间的连接是有方向的;带权图带..原创 2021-03-20 13:38:54 · 1190 阅读 · 0 评论 -
数据结构概述
资本贫穷,精神贫穷,你是不是双穷?数据结构概述做好软件开发工作,就必须了解如何组织各种数据在计算机中的存储、传递和转换。你真的了解吗?文章目录数据结构概述前言一、离散数学和数据结构二、数据和数据结构线性结构和非线性结构总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、离散数学和数据结构"数据结构"课程脱胎于“..原创 2021-02-23 00:51:40 · 1255 阅读 · 5 评论 -
二叉树
概念:结点:(node)结点是数据结构的基础,是构成复杂数据结构的基本组成单位;数据结构中的每一个数据结点对应于一个储存单元,这种储存单元称为储存结点,也可简称结点。树:树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。没有父节点的结点称为根节点(root);每个非根节点有且只有一个父节点;定义:**树(Tree)**是n(n>=0)个结点的有限集。有(n-1)个边构成;n=0时称为空树(没有结点)。在任意一颗非空树中:1)有且仅有一个特定的结点称原创 2021-01-24 16:34:30 · 313 阅读 · 0 评论 -
递归
定义:无限调用自身,每次调用会改变自身的变量,直到变量不再满足条件,停止调用;例子:求阶乘:package wang.recuision;/** * @version 1.0 * @auther WangCode * @date 2021/1/23 12:57 */public class Recursion01 { public static void main(String[] args) { Factorial factorial = new Facto.原创 2021-01-23 13:43:16 · 77 阅读 · 0 评论 -
数据结构(Java)--稀疏数组(实现过程):
稀疏数组:当一个数组的大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组;稀疏数组的处理方法: 记录数组有几行几列,有多少个不同的值; 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小存储的空间;应用实例:使用稀疏数组保留像棋盘地图等的二维的数据;二维数组转稀疏数组的思路: 遍历原始的二维数组,得到有效数据的个数; 根据sum创建稀疏数组,sparseArr int[sum+1][3] 将二维数组的有效数据存入到稀疏数组;稀疏数组转原始的二维数组的原创 2020-11-13 21:00:19 · 120 阅读 · 0 评论