
数据结构
文章平均质量分 59
fanstuck
曾世界百强私企大数据工程师,现任国企高级人工智能算法工程师,工作与研究方向为大数据开发和人工智能,个人喜欢研究技术和算法,博客热衷分享实用项目和技术干货。MCM/ICM Meritorious Winner,APMCM second prize,SCI二区一篇,软著五项专利一项,中国互联网+创新创业大赛省金国铜,全国计算机设计大赛省二国三,全国数统三等。总计省级奖项以上23项,热衷分享喜欢原创~关注我会给你带来一些不一样的认知和成长。
展开
-
二叉树的存储结构C语言代码+Python代码实现
二叉树的顺序存储是指用一组地址连续的存储单元依次自上而下、自左至右存储完全二叉树上的节点元素,即将完全二叉树上的编号为i的结点元素存储在一维数组下摆为i-1的分量中。依据二叉树的性质,完全二叉树和满二叉树采用顺序存储比较合适,树中节点的序号可以唯一地反映节点之间的逻辑关系,这样既鞥最大可能地节省存储空间,又能利用数组元素的下标值。普通二叉树转完全二叉树的方法很简单,只需给二叉树额外添加一些节点,将其"拼凑"成完全二叉树即可。例如一颗普通二叉树:转为顺序存储就为:将树中节点按照层.原创 2022-04-17 18:22:26 · 6917 阅读 · 6 评论 -
数据结构之特殊矩阵的压缩存储
前言矩阵存储主要还是将线性代数矩阵性质存储到一维或是多维数组中,题目一般都是问在数组的下标是几和下标与矩阵系数的对应关系,对于这种题目画个图设置一个简单的参数代进选项中的公式验证就好了。有不足之处或是不懂之处尽请评论区留言。一、数组的存储方式以一维数组A[0...n-1]为例,其存储结构关系式为:其中L是每个数组元素所占的存储方式。对于多维数组,有两种映射方法:按行优先和按列优先。1.按行优先设二维数组的行下标与列下标的范围分别为[0,h1]与[0,h2]。...原创 2022-01-26 21:22:35 · 3382 阅读 · 5 评论 -
链式队列的入队与出队操作(C语言)
#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;typedef struct LinkNode{ int data; struct LinkNode *next;}LinkNode;typedef struct LinkQueue{ LinkNode *fronts,*rear;}LinkQueue;//初始化int Init.原创 2022-01-20 02:12:58 · 11846 阅读 · 1 评论 -
一文看懂实现-循环队列的实现操作代码(C语言)
在实际使用队列时,为了使队列空间能重复使用,往往对队列的使用方法稍加改进:无论插入或删除,一旦rear指针增1或front指针增1 时超出了所分配的队列空间,就让它指向这片连续空间的起始位置。自己真从MaxSize-1增1变到0,可用取余运算rear%MaxSize和front%MaxSize来实现。这实际上是把队列空间想象成一个环形空间,环形空间中的存储单元循环使用,用这种方法管理的队列也就称为循环队列。原创 2022-01-20 00:42:53 · 1009 阅读 · 0 评论 -
数据结构:栈-利用栈实现任意进制转换代码(C语言)
如果你发现数据结构看似难以掌握,我将尽力简化知识,将其转化为我们更容易理解的内容。我会确保你能够理解知识并顺利运用到实践中。作为一个从事数据建模五年的专业人士,我参与了许多数学建模项目,了解各种模型的原理、建模流程和题目分析方法。我希望通过这个专栏让你能够快速掌握各类数学模型、机器学习和深度学习知识,并掌握相应的代码实现。每篇文章都包含实际项目和可运行的代码。我会紧跟各类数模比赛,将最新的思路和代码分享给你,保证你能够高效地学习这些知识。原创 2022-01-19 01:35:26 · 5872 阅读 · 0 评论 -
链式栈操作(C语言)
链式栈是栈的链式存储结构,它主要通过链表来实现栈的操作。在链式栈中,每个节点包含两部分:一部分是存储数据的数据域,另一部分是指向下一个节点的指针域。链式栈通常包含以下基本操作:创建栈、栈的入栈操作(Push)、栈的出栈操作(Pop)、判断栈空、获取栈顶元素、销毁栈。原创 2022-01-16 04:50:04 · 767 阅读 · 0 评论 -
顺序栈操作(C语言代码)
顺序栈是一种使用连续存储空间(如数组)来存储栈中元素的栈结构。它具有后进先出(LIFO, Last In First Out)的特性,即最后入栈的元素会首先出栈。原创 2022-01-16 04:09:37 · 1148 阅读 · 0 评论 -
顺序表和链表不同环境下优缺点比较
1.存取(读写)方式顺序表可以顺序存取,也可以随机存取,链表只能从表头顺序存取。一个是数组的存储方式另一个是头指针的存储形式。2.逻辑结构和物理结构顺序表存储时逻辑上是相邻的元素,对应的物理位置也是相邻的。采用链式存储时,逻辑上相邻的元素,物理存储位置不一定相邻,对应的逻辑关系是通过指针链接来表示的。3.查找、插入和删除对于按值查找,顺序表无序时,两者的时间复杂度均为O(n);存储的队列有序时,顺序表可用折半查找,此时的时间复杂度为O()。对于按序号查找,顺序表时间复杂度为O(1),原创 2022-01-13 15:41:11 · 815 阅读 · 0 评论 -
双链表的插入与删除(标准C)
#include <iostream>#include <stdlib.h>#include <stdio.h>using namespace std;typedef struct DNode{ int data; struct DNode *prior,*next;}DNode,*DLinkList;//头插创建双链表int creat_DLinkList(DLinkList &DL){ DNode *p;int x; .原创 2022-01-13 14:42:45 · 359 阅读 · 0 评论 -
历年408统考数据结构线性表大题破解方法(一)(附C代码
关于线性表408考的还是挺频繁的,其实总体来说并不难(暴力破解),要是最优算法在考场上那种气氛还是蛮难想到的。本文主要总结在2010年-2020年的408考试中考过的关于线性表大题破解方法以及代码,废话不多说直接上真题:2010年大题:算法思路:这是一道很经典的逆置算法题,可以通过数学的思路设前面的X0,X1,...Xp-1为a序列,后面的Xp,Xp+1...Xn-1为b,则我们知道原序列为,通过逆置我们可以得到,随后对整个数列进行逆置。根据这个思路我们可以来构建算法。代码:int .原创 2021-12-20 11:11:12 · 1764 阅读 · 1 评论 -
线性表顺序存储的插入与删除(标准C)
线性表(List):零个或多个数据元素的有限序列。线性表的数据集合为{a1,a2,…,an},假设每个元素的类型均为DataType。其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素。数据元素之间的关系是一对一的关系。在较复杂的线性表中,一个数据元素可以由若干个数据项组成。在这种情况下,常把数据元素称为记录,含有大量记录的线性表又称为文件。原创 2021-11-30 10:07:55 · 1485 阅读 · 0 评论 -
单链表的插入与删除(标准C)
#include <iostream>#include <stdlib.h>#include <stdio.h>using namespace std;typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;//头插int List_HeadInsert(LinkList &L){ LNode *s;int x; L=(LinkList.原创 2022-01-11 14:41:44 · 656 阅读 · 0 评论