数据结构
文章平均质量分 92
许你常欢
纸上得来终觉浅,绝知此事要躬行
展开
-
二叉树必备各种递归算法(求树的结点数,高度,叶子结点...)
1、求二叉树中的节点个数递归解法:(1)如果二叉树为空,节点个数为0(2)如果二叉树不为空,二叉树节点个数 = 左子树节点个数 + 右子树节点个数 + 1int NodeNum(BTNode * root){ if(root== NULL) // 递归出口 return 0; return NodeNum(root->lchild) + NodeNum(root->rchild) + 1;}2、求二叉树的深度递归解法:(1)如果二叉树为空,二叉原创 2020-11-08 15:25:46 · 46147 阅读 · 14 评论 -
队列概述及存储结构(顺序存储,链式存储,循环队列)代码实现
一、队列的基本概念1.1 队列的定义 队列(Queue) 简称队,也是一种操作受限的线性表,只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队。删除元素称为出队或离队。这和我们日常生活中的排队是一致的,最早排队的也是最早离队的,其操作的特性是先进先出(First In First Out, FIFO),如:队头(Front): 允许删除的一-端,又称队首。队尾(Rear)。: 允许插入的一-端。空队列: 不含任何元素的空表。1.2 队列常见的基本操作Init原创 2020-07-13 13:59:14 · 5239 阅读 · 0 评论 -
栈的顺序存储结构与链式存储结构及代码实现
一、栈的概念1.1 栈的定义栈(Stack) :是只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作,如图所示:子弹先进后出或后进先出栈的示意图:栈顶(Top): 线性表允许进行插入删除的那一端。栈底(Bottom): 固定的,不允许进行插入和删除的另一端。空栈: 不含任何元素的空表。进栈(压栈或入栈): 栈的插入操作出栈(弹栈): 栈的删除操作1.2 栈的基本操作InitStack(&S): 初始化-一个空栈 S原创 2020-07-11 13:57:02 · 3651 阅读 · 0 评论 -
线性表的链式存储结构及代码实现(单链表,双链表,循环链表)
在上一篇博文中介绍了线性表的顺序存储方式,它最大的缺点就是在插入和删除操作时会移动大量的元素,这显然会耗费很多时间。后来人们便想到了用链式存储方式来解决上面这一问题。链式存储线性表时,不需要使用地址连续的存储单元,即不要求逻辑上相邻的元素在物理位置上也相邻,它通过 “链” 建立起数据元素之间的逻辑关系,因此插入和删除操作不需要移动元素,而只需修改指针,但也会失去顺序表可随机存取的优点。一、单链表1.1 单链表的定义 线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素原创 2020-07-08 16:56:41 · 3284 阅读 · 0 评论 -
线性表概述及其顺序存储结构代码实现
一、线性表的定义 线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当 n 等于 0 时线性表是一个空表。若用L命名线性表,则其一般表示为 L= (a1, a2, a1, … ,ai+l, … ,an)式中,a1是唯一的 “第一个” 数据元素,又称表头元素; an是唯一的 “最后一个” 数据元素,又称表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱。除最后-一个元素外, 每个元素有且仅有一个直接后继。由以上定义可以得出线性表的特点如下,表原创 2020-07-06 15:29:03 · 1716 阅读 · 0 评论 -
C语言指针,结构体与动态内存分配与释放复习
一、指针1.1 指针的基本介绍指针的重要性:指针是C语言的灵魂。指针,也就是内存的地址;所谓指针变量,也就是保存了内存地址的变量。地址:是从内存单元的编号 ,是从0开始的非负整数 ,如:0–FFFFFFFF【4G-1】指针:指针就是地址 ,地址就是指针 。指针变量是存放在内存单元地址的变量, 指针的本质是一个操作受限的非负整数基本概念int i = 0;int *p = &i; //等价于int *p; p = &i;详解这两步操作:(1)p 存放了原创 2020-07-04 12:07:58 · 3200 阅读 · 0 评论 -
数据结构和算法基础概念
一、数据结构和算法的重要性算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算一般来讲 程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这些计算框架和缓存技术, 它的核心功能是哪个部分呢?拿实际工作经历来说, 在Unix下开发服务器程序,功能是要支持上千万人同时在线, 在上线前,做内测,一切OK,可上线后,服务器就支撑不住...原创 2019-11-05 17:28:46 · 757 阅读 · 0 评论