E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
C语言数据结构
C语言数据结构
之单链表的实现
目录一.为什么使用链表二.链表的概念三.链表的实现3.1创建链表前须知3.2定义结构体3.3申请一个节点3.4链表的头插3.5链表的尾插3.6链表的尾删3.7链表的头删3.8寻找某节点3.9在指定节点前插入节点3.10删除指定节点前的节点3.11链表的销毁一.为什么使用链表在学习链表以前,我们存储数据用的方式就是数组。使用数组的好处就是便于查找数据,但缺点也很明显。使用前需声明数组的长度,一旦声明
·
2022-06-29 12:53
C语言数据结构
深入探索顺序表
目录1.顺序表的概念及结构2.增删查改的实现2.1扩容2.2插入数据2.2.1尾插2.2.2头插2.2.3任意位置插入2.3删除数据2.3.1尾删2.3.2头删2.3.3任意位置删除2.4查找2.5修改数据2.6销毁空间1.顺序表的概念及结构顺序表是使用一段连续物理地址的单元来依次储存数据的线性结构,一般采用数组存储。在数组上完成增删查改。顺序表分为两类:静态顺序表:使用定长数组储存元素struc
·
2022-06-25 13:02
C语言数据结构
、十字链表的分析及实现
目录前言一、什么是十字链表二、认识十字链表1.十字链表的组成2.顶点和弧的连接三、代码逻辑实现1.出度2.入度总结前言无论是什么程序都要和数据打交道,一个好的程序员会选择更优的数据结构来更好的解决问题,因此数据结构的重要性不言而喻。数据结构的学习本质上是让我们能见到很多前辈在解决一些要求时间和空间的难点问题上设计出的一系列解决方法,我们可以在今后借鉴这些方法,也可以根据这些方法在遇到具体的新问题时
白滴岑
·
2022-06-23 07:45
数据结构
C语言
c语言
数据结构
算法
图论
C语言数据结构
图的创建与遍历实验示例
目录一、实验目的二、实验内容三、实验工具四、实验代码五、实验结果六、总结与思考一、实验目的理解图的基本概念,掌握图的存储结构,实现图的深度优先搜索遍历算法与广度优先搜索遍历算法。二、实验内容利用邻接矩阵描述示例图,编写程序输出示例图的深度优先搜索和广度优先搜索的遍历序列。具体步骤如下:将图的邻接矩阵描述为一个二维数组,并将该数组定义为全局变量,以便数据的传递;定义一个队列,在广度优先搜索时,该队列
·
2022-06-06 19:18
C语言数据结构
算法基础之循环队列示例
目录说明示例代码1.首先定义结构体:2.定义各种算法:3.测试:4.最后的结果:说明循环队列是一种先进先出的,首尾相连的队列。大致的结构如下图:用数组来抽象的表示一下的话,如下图:循环队列有两个指针指向数据,上图中的start和end就是那两个指针,它们指向相同的位置,表示的是空,即队列是空的。随着数据的放入,队列一般有下面的两种形式:需要注意第二种形式,从图上看end在start的前面了,但是因
·
2022-06-06 11:38
C语言数据结构
顺序表的使用
数据结构之线性表#2.1.1线性表的定义InitList初始化列表GetLength获取长度GetElem查找元素Locate找出…的准确位置InsElem插入元素define定义typedef定义类型struct结构体MAXLEN序列最大值顺序表的完整代码#include#defineMAXLEN100typedefintDataType;typedefstruct{DataTypedata[M
仲夏月二十八
·
2022-06-05 07:19
笔记
数据结构
第一篇博客 未来可期
学习内容:
C语言数据结构
C++Java学习时间:对于大学生来讲,属于自己可分配的时间
XiaoJin__
·
2022-06-02 07:27
数据结构
python
java
c++
c语言
数据结构c语言版链表反转,
C语言数据结构
link 链表反转的实现
C语言数据结构
link链表反转的实现链表反转,示例如下:偶数个输入:a->b->c->d->e->f偶数个输出:e->f->c->d->a->bor奇数个输入:a->b->c->d->e->f->g偶数个输出
曹阳明
·
2022-05-30 16:37
数据结构c语言版链表反转
《
C语言数据结构
》———链表进阶之双向链表
在实际生活中,我们用到的最多的两种链表结构就是单链表和双向带头链表,上一篇已经介绍了单链表的实现以及一些应用,接下来我为大家详细介绍一下双向链表,以及一些链表oj题。文章目录一、双向链表的概念二、双向链表的实现三、链表与顺序表的差别四、链表oj总结提示:以下是本篇文章正文内容,下面案例可供参考一、双向链表的概念1、概念:概念:双向链表是每个结点除后继指针外还有⼀个前驱指针。双向链表也有带头结点结构
披星戴月的贾维斯
·
2022-05-29 09:39
数据结构初阶
c语言
后端
数据结构
链表
算法
c语言数据结构
——如何学好链表?教你一招(初级)
前言其实很多编程语言都差不多的,编程无非就是语法的熟练运用,清晰逻辑思路以及各种极端情况的考虑。不过博主说“无非”二字有点太过轻巧,毕竟自个儿也才是一个半斤八两的小东西,但是既然是要写博客,那么底气就得拿出来。链表有个最重要的点就是需要有清晰的逻辑思路,那么该怎么做到呢?画图!!!画图!!!画图!!!,换句话来说只要你能够把逻辑思路用图的方式画出来,各种问题也就能够迎刃而解。说道问题问题,那么链表
柒柒花生酱
·
2022-05-29 09:15
数据结构
C语言
单链表
指针
链表
c语言
数据结构
单链表的实现(
C语言数据结构
)
目录以下是我们需要实现的功能以下是我们上述功能的具体实现一、创建新的结点函数二、打印链表中的全部元素三、尾插元素四、头插元素五、删除头结点六、删除尾结点七、查找指定元素八、在pos位置之前插入九、在pos位置之后插入元素十、摧毁链表以下是我们写在Slist.c中的完整代码以下是我们的测试代码,写在test.c文件中以下是我们需要实现的功能以下的代码我们放在Slist.h的头文件中。#pragmao
wolfwalker
·
2022-05-09 07:16
数据结构(C/C++)
c语言
数据结构
单链表
达内
C语言数据结构
DAY01(也就是14天)
1.C语言总结1.1掌握linux常用命令clear/pwd/cd/ls/touch/mkdir/rm/cp/mv/echo/find/grep/whoami/tar1.2熟练掌握vim编辑器使用1.3掌握C语言编码框架头文件intmain(intagrc,char*argv[1]){各种语句;return0;}1.4掌握C语言变量变量声明(不分配内存)变量的定义(分配内存)四种变量:局部非静态局
菜小菜呀
·
2022-05-07 17:01
c语言
c语言数据结构
常考算法,第6讲嵌入式C语言_常见数据结构及算法..docx
/复习结构、联合、枚举/复习结构、联合、枚举Page3GDAIBEmbeddedCProgramming嵌入式c语言编程——常见数据结构及算法DataStructureandArithmeticPago2?结构、联合、枚举?用结构构成链表?单向链表-双向链表-循环双向链表?C语言中的常用算法=15息有学号.姓名.性别、年龄、住一本图书的「信息鲁分类编号、书名.作者、出版社、出版日期、价格.库存量等
weixin_39992957
·
2022-05-07 17:58
c语言数据结构常考算法
数据结构书上c语言矩阵转置算法,
C语言数据结构
两种算法实现 稀疏矩阵 转置...
普通算法实现稀疏矩阵转置(思路看代码注释)/*
C语言数据结构
*普通算法实现稀疏矩阵装置*//*测试数据:mu:6nu:6tu:8矩阵如下:0129000000000-3000014002400001800001500
V6火箭
·
2022-05-07 17:25
数据结构书上c语言矩阵转置算法
稀疏矩阵 c语言,
C语言数据结构
稀疏矩阵
《
C语言数据结构
稀疏矩阵》由会员分享,可在线阅读,更多相关《
C语言数据结构
稀疏矩阵(4页珍藏版)》请在人人文库网上搜索。
沃尔沃汽车
·
2022-05-07 17:55
稀疏矩阵
c语言
C语言数据结构
与算法时间空间复杂度基础实践
目录小感想时间复杂度空间复杂度小感想今天去看了看许多人今年去各个大厂面试的面经,确实如大体所说,各大公司越来越注重性能迭代,时代需要数据结构与算法这样的考试。一个公司的成本主要来自于人力成本,但是上了规模写核心代码的人少了,成本就会来自于机器,资源,时间,抢占到这些就相当于无时无刻在减少客户流失。所以同样一段代码给两个人写,甲拿8000,乙拿25000,但是后者效率提高了50%,而这50%带来的收
·
2022-05-04 13:59
C语言数据结构
之算法的时间复杂度
目录1、算法的复杂度2、时间复杂度2.1时间复杂度的定义2.2大O的渐进表示法3、常见时间复杂度计算举例3.1冒泡排序的时间复杂度3.2二分查找的时间复杂度3.3阶乘(递归)的时间复杂度3.4菲波那切数列的时间复杂度1、算法的复杂度算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。时间复杂度主要
·
2022-05-04 13:27
C语言数据结构
与算法---最短路径(弗洛伊德算法)
文章目录一.求所有顶点间的最短路径二.弗洛伊德(Floyd)算法1.算法思想2.代码实现一.求所有顶点间的最短路径方法一:每次以一个顶点为源点,重复执行迪杰斯特拉算法n次方法二:使用弗洛伊德算法两种方法的时间复杂度相同都为n^3,但是弗洛伊德算法却更为简单二.弗洛伊德(Floyd)算法1.算法思想逐个顶点试探从Vi到Vj的所有可能存在的路径选出一条长度最短的路径步骤:初始时设置一个n阶方阵,令其对
Jesslili
·
2022-04-29 15:18
数据结构与算法(C语言)
算法
数据结构
c语言
图论
C语言数据结构
详细解析二叉树的操作
目录二叉树分类二叉树性质性质的使用二叉树的遍历前序遍历中序遍历后序遍历层序遍历求二叉树的节点数求二叉树叶子结点个数求二叉树的最大深度二叉树的销毁二叉树分类满二叉树除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。也可以理解为每一层的结点数都达到最大值的二叉树。完全二叉树一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结
·
2022-04-26 11:34
C语言数据结构
-如何判断时间复杂度和空间复杂度
如何才能评价一个算法效率,我们往往通过时间复杂度和空间复杂度来描述。一、时间复杂度由于在不同的硬件设备,不同的软件系统的环境下,我们很难准确地描述一个程序具体运行的时间,所以我们提出了一个时间复杂度的概念来描述一个程序的时间效率。一个语句的频度指这个语句在算法中被重复执行的次数。算法中所有语句的频度值和记为T(n)在下面的语句中,我们可以看到这段代码中++count所执行的次数为+2*N+10次N
wolfwalker
·
2022-04-24 07:41
数据结构(C/C++)
数据结构
C语言数据结构
通关时间复杂度和空间复杂度
目录一、时间复杂度:1.常数阶2.线性阶3.对数阶4.平方阶二、空间复杂度算法的时间复杂度和空间复杂度一、时间复杂度:首先,为什么会有这个概念的出现呢?原来啊,在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f
·
2022-04-22 16:01
C语言数据结构
之堆、堆排序的分析及实现
目录1.堆的概念结构及分类1.2堆的分类1.2.1大堆1.2.2小堆2.堆的主要接口3.堆的实现3.1堆的初始化HeapInit3.2堆的销毁HeapDestory3.3堆的打印HeapPrint3.4堆的插入元素HeapPush*3.5堆的删除元素HeapPop*4.堆的应用:堆排序***4.1堆排序实现过程分析4.3堆排序结果演示5.堆(小堆)的完整代码总结1.堆的概念结构及分类以上这段概念描
·
2022-04-20 12:50
C语言数据结构
之堆排序的优化算法
1.堆排序优化算法要堆堆排序算法进行优化我们首先要明白之前我们所写的堆排序有什么可以优化的地方或者说哪里写的不够好?voidHeapSort(int*a,intsize){//小堆HPhp;HeapInit(&hp);//O(N*logN)for(inti=0;i=0;--i){AdjustDown(a,size,i);}1.3.2堆排序优化算法的空间复杂度由于我们是在原数组上进行遍历因此没有开辟
·
2022-04-20 12:49
C语言数据结构
顺序表的进阶讲解
目录前言一、顺序表的构造VS功能1.顺序表的构造2.接口实现(功能)二、功能具体分析1.初始化2.销毁3.检查size与capacity是否溢出4.尾增功能(实现)5.打印三、实现具体功能代码页(SeqList.c)四.总结前言在学习链表之前先掌握顺序表什么是顺序表?顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构一般情况下采用数组存储,在数组上完成数据的增删查改。顺序表一般可分为:
·
2022-04-12 19:25
C语言数据结构
二叉树之堆的实现和堆排序详解
目录一、本章重点二、堆2.1堆的介绍2.2堆的接口实现三、堆排序一、本章重点堆的介绍堆的接口实现堆排序二、堆2.1堆的介绍一般来说,堆在物理结构上是连续的数组结构,在逻辑结构上是一颗完全二叉树。但要满足每个父亲节点的值都得大于孩子节点的值,这样的堆称为大堆。每个父亲节点的值都得小于孩子节点的值,这样的堆称为小堆。那么以下就是一个小堆。百度百科:堆的定义如下:n个元素的序列{k1,k2,ki,…,k
·
2022-04-11 19:07
C语言数据结构
中堆排序的分析总结
目录一、本章重点二、堆2.1堆的介绍(三点)2.2向上调整2.3向下调整2.4建堆(两种方式)三、堆排序一、本章重点堆向上调整向下调整堆排序二、堆2.1堆的介绍(三点)1.物理结构是数组2.逻辑结构是完全二叉树3.大堆:所有的父亲节点都大于等于孩子节点,小堆:所有的父亲节点都小于等于孩子节点。2.2向上调整概念:有一个小/大堆,在数组最后插入一个元素,通过向上调整,使得该堆还是小/大堆。使用条件:
·
2022-04-11 19:05
C语言数据结构
实例讲解单链表的实现
目录1、单链表2、单链表的实现头文件函数的实现(1)打印链表(2)动态申请结点(3)尾插(4)头插(5)尾删(6)头删(7)查找(8)在pos之前插入(9)删除pos(10)在pos之后插入(11)在pos后删除(12)最后用完记得销毁3、各功能的测试这里我们来简单实现单链表的增删查找。1、单链表概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实
·
2022-03-25 17:10
C语言数据结构
超详细讲解单向链表
目录1.链表概况1.1链表的概念及结构1.2链表的分类2.单向链表的实现2.1SList.h(头文件的汇总,函数的声明)2.2SList.c(函数的具体实现逻辑)2.2.1打印链表2.2.2搞出一个新节点(为其他函数服务)2.2.3链表尾插2.2.4链表头插2.2.5链表尾删2.2.6链表头删2.2.7查找节点2.2.8在pos位置之前插入2.2.9在pos位置之后插入2.2.10删除pos位置2
·
2022-03-25 13:36
C语言数据结构
深入探索顺序表
目录1.线性表2.顺序表2.1概念及结构2.2接口实现2.2.1初始化2.2.2检查容量2.2.3顺序表打印2.2.4顺序表尾插2.2.5顺序表尾删2.2.6顺序表头插2.2.7顺序表头删2.2.8顺序表在pos位置插入x2.2.9顺序表删除pos位置的值2.2.10尾插、尾删、头插、头删的改进2.2.11顺序表查找2.2.12顺序表销毁2.3数组相关面试题2.4顺序表的问题及思考1.线性表线性表
·
2022-03-25 13:04
C语言数据结构
之图书借阅系统
本文实例为大家分享了C语言实现图书借阅系统的具体代码,供大家参考,具体内容如下/***************************** @title:数据结构实验 @name:线性表(顺序表)的应用--我的图书馆 @object: [实验目的] 应用线性表解决问题. 有若干图书,借出的书需要登记下来. 用两个线性表分别保存现有图书和借书信息, 并实现增加新
·
2022-03-11 12:30
C语言数据结构
之二叉树详解
目录1.树概念及结构1.1树概念1.2树的表示2.二叉树概念及结构2.1概念2.2数据结构中的二叉树2.3特殊的二叉树2.4二叉树的存储结构2.5二叉树的性质3.二叉树顺序结构及概念3.1二叉树的顺序结构3.2堆的概念及结构3.3堆的实现4.二叉树链式结构及实现4.1二叉树链式结构的遍历4.2二叉树的链式实现1.树概念及结构1.1树概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一
·
2022-03-10 12:27
C语言数据结构
之堆排序详解
目录1.堆的概念及结构2.堆的实现2.1堆的向下调整算法2.2堆的向上调整算法2.3建堆(数组)2.4堆排序2.5堆排序的时间复杂度1.堆的概念及结构如果有一个关键码的集合K={k0,k1,k2,…,kn-1},把它的所有元素按完全二叉树(二叉树具体概念参见——二叉树详解)的顺序存储方式存储在一个一维数组中,并满足:Ki=K2i+1且Ki>=K2i+2)i=0,1,2…,则称为小堆(或大堆)。将根
·
2022-03-10 12:46
C语言数据结构
哈希表详解
/**程序名:hash.c,此程序演示哈希表的实现,数据元素单链表带头结点。**/#include#include#include//哈希表中数据元素的结构体。typedefstructElement{unsignedintkey;//关键字。intvalue;//数据元素其它数据项,可以是任意数据类型。//charvalue[1001];//数据元素其它数据项,可以是任意数据类型。}Elemen
·
2022-02-26 17:28
C语言数据结构
系列之树的概念结构和常见表示方法
0x00树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限节点组成的一个具有层次关系的集合。❓那么为什么叫"树"呢?我们之所以把它成为"树",是因为它很像我们现实生活中的树。只是它是倒过来的,根朝上叶子朝下。0x01树的结构①有一个特殊的节点,成为根节点,根节点不存在前驱节点。②除根节点外,其余节点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,期中没一个集合Ti(10)棵互不
·
2022-02-25 20:59
C语言数据结构
系列队列篇
目录一、队列(Queue)0x00队列的概念0x01队列的结构二、队列的定义0x00链式队列0x02接口函数三、队列的实现0x00队列初始化(QueueInit)0x01销毁队列(QueueDestroy)0x02判断队列是否为空(HeapIsEmpty)0x03入队(QueuePush)0x04出队(QueuePop)0x05返回队头数据(QueueFront)0x06返回队尾数据(QueueB
·
2022-02-25 20:59
C语言数据结构
系列篇二叉树的概念及满二叉树与完全二叉树
链接:
C语言数据结构
系列之树的概念结构和常见表示方法0x00概念定义:二叉树既然叫二叉树,顾名思义即度最大为2的树称为二叉树。它的度可以为1也可以为0,但是度最大为2。
·
2022-02-25 20:28
C语言数据结构
系列篇二叉树的遍历
目录前言:Ⅰ.定义二叉树0x00二叉树的概念(回顾)0x00定义二叉树0x01手动创建二叉树Ⅱ.二叉树的遍历0x00关于遍历0x01二叉树前序遍历0x02二叉树中序遍历0x03二叉树后序遍历0x04层序遍历前言:学习二叉树的基本操作前,需要先创建一颗二叉树,然后才能学习其相关的基本操作,考虑到我们刚刚接触二叉树,为了能够先易后难地进行讲解,我们将暂时手动创建一颗简单的二叉树,用来方便大家学习。等二
·
2022-02-25 20:28
C语言数据结构
经典10大排序算法刨析
1、冒泡排序//冒泡排序#include#include//采用两层循环实现的方法。//参数arr是待排序数组的首地址,len是数组元素的个数。voidbubblesort1(int*arr,unsignedintlen){if(len0;ii--)//一共进行len-1趟比较。{for(jj=0;jjarr[jj+1])//如果前面的元素大于后面的元素,则交换它位的位置。{itmp=arr[jj
·
2022-02-25 19:19
C语言数据结构
篇——栈的链式存储
栈的链式存储,其实本质还是链表,不过是多了一些栈特有的限制(栈的特有限制和理解大家可以查看我的上一篇博客,点此链接可以直接进入:
C语言数据结构
篇——栈的顺序存储_
Grande joie
·
2022-02-22 08:03
数据结构
c语言
链表
C语言数据结构
篇——栈的顺序存储
注:本文需要一定的顺序表基础,有想了解顺序表的小伙伴可以看一下我分享的关于顺序表的博客,点此链接可以直接进入:
C语言数据结构
篇——顺序表的理解,创建,插入和删除_Grandejoie的博客-CSDN博客目录前言初识栈栈的创建栈的初始化判断栈为空获取栈顶元素弹出栈顶元素压入栈顶元素销毁栈完整代码前言在学完顺序表和链表这两种最基本的数据结构之后就要进入我们的栈和队列的学习了
Grande joie
·
2022-02-22 08:02
数据结构
c语言
链表
c语言数据结构
,你可能还不知道的顺序表
数据结构顺序表顺序表定义1,前言线性表的顺序存储又称为顺序表。它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。其最大的特点就是:元素的逻辑顺序与其物理顺序相同。线性表的顺序存储结构中任一元素都可以随机存取,并且注意:线性表中元素的位序是从1开始的,而数组中元素的下标是从0开始的。假定线性表的元素类型为EleType,则线性表的顺序存储类型可以
Charmchin
·
2022-02-15 22:00
C语言数据结构
与算法之时间空间复杂度入门
目录数据结构与算法什么是数据结构?什么是算法?分析维度大O的渐进表示法常数阶线性阶对数阶其他时间复杂度指标空间复杂度数据结构与算法终于开始搞这块难啃的骨头了,走上这条漫漫长路之前要明白:什么是数据结构?什么是算法?是数据之间存在一种或多种特定关系的数据元素集合,为编写出一个“好”的程序,必须分析待处理对象的特性及各处理对象之间存在的关系,这也就是研究数据结构的意义所在为编写出一个“好”的程序,必须
·
2022-02-15 14:50
C语言数据结构
顺序表中的增删改(头插头删)教程示例详解
目录头插操作头删操作小结头插操作继上一章内容(
C语言数据结构
顺序表中的增删改教程示例详解),继续讲讲顺序表的基础操作。和尾插不一样,尾插出手阔绰直接的开空间,咱头插能开吗?
·
2022-02-15 12:35
C语言数据结构
顺序表中的增删改(尾插尾删)教程示例详解
目录初始化尾插格局打开尾删初始化在初步认识顺序表这一结构后,我们就可以继续深入探究这是我之前在.h文件中创建的结构体typedefinttype;typedefstructlist{type*a;intsize;intcapacity;}st;在处理顺序表结构时我们会用到的一些接口,处理其中的关系,其实本质上就是函数,这里我用复杂英文对应出来方便形成记忆。voidinit(st*s);//插入vo
·
2022-02-15 12:34
C语言数据结构
线性表教程示例详解
目录线性表顺序表线性表数据结构里我们时常看到什么什么表,线性表是最基本、最简单、也是最常用的一种数据结构,其他各种表的万恶之源就是这个线性表,他是个啥其实顾名思义:一个线性表是n个具有相同特性的数据元素的有限序列。数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储
·
2022-02-15 12:02
C语言数据结构
——二叉树的顺序存储和二叉树的遍历
在学习顺序存储结构之前要知道:二叉树的结构是非线性的;每一个结点可有两个后继。对于这种一对多的层次结构,我们应该怎么样合理的存储下来呢?二叉树既有顺序存储又有链式存储,今天先学顺序存储。方法:使用一组连续的存储单元来存放二叉树的数据元素。使用结点之间的相对位置表示结点之间的关系。对于满二叉树和完全二叉树来说,可以按照对满二叉树结点连续编号,将各结点数据存放到一组连续的存储单元中,将二叉树中编号为i
开心果呀
·
2022-02-15 07:38
笔记
二叉树
数据结构
c语言
C语言数据结构
二叉树先序、中序、后序及层次四种遍历
目录一、图示展示(1)先序遍历(2)中序遍历(3)后序遍历(4)层次遍历(5)口诀二、代码展示一、图示展示(1)先序遍历先序遍历可以想象为,一个小人从一棵二叉树根节点为起点,沿着二叉树外沿,逆时针走一圈回到根节点,路上遇到的元素顺序,就是先序遍历的结果先序遍历结果为:ABDHIEJCFKG动画演示:记住小人沿着外围跑一圈(直到跑回根节点),多看几次动图便能理解(2)中序遍历中序遍历可以看成,二叉树
·
2022-02-11 11:18
C语言数据结构
之二叉链表创建二叉树
目录一、思想(先序思想创建)二、创建二叉树(1)传一级参数方法(2)传二级参数方法一、思想(先序思想创建)第一步先创建根节点,然后创建根节点左子树,开始递归创建左子树,直到递归创建到的节点下不继续创建左子树,也就是当下递归到的节点下的左子树指向NULL,结束本次左子树递归,返回这个节点的上一个节点,开始创建右子树,然后又开始以当下这个节点,继续递归创建左子树,左子树递归创建完,就递归创建右子树,直
·
2022-02-11 10:48
C语言数据结构
之二分法查找详解
问题:在有序数组中查找给定元素的下标goal。在查找一个数组元素的下标,可以用循环来解决,但是如果一个数足够大,比如说手机的价格,用循环来查找,就相当于叫一个人猜,从0开始,需要猜很久。这时候就出现了二分查找,也叫对半查找。对半查找顾名思义就是猜一次,下次猜的内容就减少一半这时候定义一个变量left表示最左边元素的下标,在定义一个right表示最右边元素的下标,而mid就表示中间元素的下标。当中间
·
2022-02-10 17:35
C语言数据结构
与算法之图的遍历(一)
目录引入深度优先搜索代码实现完整代码引入在数据结构中常见的有深度优先搜索和广度优先搜索。为什么叫深度和广度呢?其实是针对图的遍历而言的,请看下面这个图:图是由一些小圆点(称为顶点)和连接这些点的直线(称为边)组成的。例如上图就是由5个顶点(编号为1,2,3,4,5)和5条边(1-2,1-3,1-4,2-4)组成。现在我们从1号顶点开始遍历这个图,遍历就是把图的每一个顶点都访问一次。使用深度优先搜索
·
2022-02-08 11:52
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他