数据结构
L公子
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
链表面试题
链表面试试题 1:编写一个程序,找到两个单链表相交的起始节点 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ typedef struct ListNode Node; struct ListNode *get...原创 2019-08-26 16:35:21 · 275 阅读 · 0 评论 -
数据结构-树的总结
数据结构-树的总结 1 : 定义:树是包含n(n>=0)个结点的有穷集,其中: (1):每个元素称为结点(node); (2):有一个特定的节点被称为根结点或树根(root); (3):除根结点以外的其余数据元素被分为m(m>=0)个互不相交的集合T1,T2…Tm-1 ,其中每一个集合mi(1=<i<=m)本身也是一棵树,被称为原树的子树。 单个结点也是一棵树,树根就是...转载 2019-07-24 00:10:51 · 431 阅读 · 0 评论 -
二叉树前序 中序 后序 递归算法以及非递归算法
二叉树前序 中序 后序 递归算法以及非递归算法 一:递归算法` #include<stdio.h> #include<stdlib.h> #include<assert.h> typedef struct Node { char value; struct Node* left; struct Node* right; }Node; //前序 void p...原创 2019-07-17 15:55:22 · 691 阅读 · 0 评论 -
数据结构排序-总结
数据结构排序总结 一:排序的基本概念: 假设含有n个记录的序列为{r1,r2,r3…rn},其相应的关键字为{k1,k2, k3,…kn},需确定1,2,3…n的一种排列p1,p2,…pn使其相应的关键字满足kp1<=kp2<=kp3<=…kpn非递减(或非递增)关系,及时的序列称为一个按关键字有序的序列{rp1,rp2,rp3…rpn},这样的操作就称为排序。 二:排序的分...原创 2019-07-20 15:53:08 · 543 阅读 · 0 评论 -
数据结构-堆
数据结构-堆 1: 堆的概念以及特性 堆是一种数组对象,它可以被视为一科完全二叉树结构。它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。 2:数据结构堆与内存堆区的区别 1):数据结构中的栈与堆 数据结构中的堆与栈是两种不同的数据结构,两者都是数据项按序排列的数据结构。 栈:像是装数据的桶或者箱子 栈是一种...原创 2019-07-22 17:08:03 · 446 阅读 · 0 评论 -
链表的基本操作
链表的基本操作 一:链表的概念 链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表上的指针链接次序实现的。链表由一系列结点(链表中的每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 二:链表的种类 实际中链表多种多样,以下情况组合起来就有八种: 1:单链表,双向链表 2:带头,不带头...原创 2019-08-24 17:46:21 · 262 阅读 · 0 评论 -
栈与队列的实现
栈和队列 一:栈 1:栈的概念 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈中的元素遵守先进后出的原则。 2:栈的基本操作 push 向栈底添加元素 pop 从栈顶取出元素 size 判断栈中元素个数 Empty 判断栈是否为空 top 返回栈顶元素 3:代码实现 用链表实现栈 #defi...原创 2019-08-22 18:19:50 · 343 阅读 · 0 评论 -
时间空间复杂度分析
时间空间复杂度 一:时间复杂度 1:什么是时间复杂度? 算法的时间复杂度是一个函数,它定性的描述了该算法的运行时间,一个算法执行所消耗的时间。一个算法所花费的时间与其中语句的执行次数成正比,算法中基本操作的执行次数,为算法的时间复杂度。 2:时间复杂度为什么看的是最差情况? 理由如下: 最坏时间复杂度,实在任意输入下的运行时间界限,保证算法任何时候的运行时间都不会比它长。 在某些情况下,最坏情况...原创 2019-08-31 14:17:44 · 504 阅读 · 0 评论
分享