
数据结构
孙智荣
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图的存储
图的存储一共有四种方法:1.邻接矩阵:这种方法简单易懂,但是容易造成内存的浪费。 最简单的存图方式,一般就是开辟一个二维数组,比如一共有n个点组成的图,就开个edge[n][n],edge[1][2] = 3,就表示点1到点2的权值为3,但是有一些到不了的点,比如4到达不了5,但是仍有edge[4][5]这个数据,我们可以把它初始化为一个标记数,代表无法到达。太简单,代码就不放了;2.邻接表:改善了矩阵所带来的内存浪费问题,但是操作不便。邻接表的处理办法是这样。1) 图中顶...原创 2020-07-22 21:59:51 · 1201 阅读 · 0 评论 -
红黑树
一.为什么要有红黑树这种数据结构?首先,在二叉搜索树,极个别极端的数据会使二叉树退化成链表,所以出现了平衡二叉树(AVL树);ALV树:是一种严格按照定义来实现的平衡二叉查找树,所以它查找的效率非常稳定,为O(log n),由于其严格按照左右子树高度差不大于1的规则,插入和删除操作中需要大量且复杂的操作来保持ALV树的平衡(左旋和右旋),因此ALV树适用于大量查询,少量插入和删除的场景中。所以说,如果有大量数据进行插入,则AVL树会耗费大量时间去进行旋转平衡操作,为了使整个二叉树更具备查找与插入原创 2020-07-20 20:18:55 · 221 阅读 · 0 评论 -
二叉树
树的概念树(Tree)是n(n>=0)个结点的有限集合,在任何一颗非空树中:(1)有且仅有一个特定称为根(root)的结点;(2)当n>1时,其余节点可以分为m个互不相交的有限集T1,T2...Tm;其中每个集合本身又是一个树,并且称为根的子树(subtree)。树是一种递归的数据结构,树作为一种逻辑结构,同时也是一种分层结构,树的根结点没有前驱节点,而其他结点都有...原创 2020-05-08 11:22:27 · 315 阅读 · 0 评论 -
class类实现栈、队列
在c++中,STL里有stack和queue两个封装函数,一直不知道是怎么实现的,直到在网上看到了class类,然后自己写了一下特此记录栈class stack{ public: stack(); void pop(); void push(char c); char top(); void show(); bool empty(){ return _to...原创 2020-02-25 13:57:31 · 448 阅读 · 0 评论 -
数据结构之链表
链表在介绍链表之前首先说一下数组,因为链表跟数组的功能类似,都是用来存储数据的,但是数组却要提前分配大小,如果太大,则造成了内存资源的浪费,而太小了又会造成数据的丢失,那有没有一种存储结构是按需分配,即输入多少数据就相应的分配多少空间来存储它们,链表便完全解决了这种数据跟空间不匹配的问题。链表的概念链表就是由一个或多个含有指针成员的结构体,通过其指针成员的地址指向,形成了一种逻辑上的链...原创 2020-02-21 12:03:10 · 518 阅读 · 0 评论