数据结构
文章平均质量分 89
zhangshen12356
这个作者很懒,什么都没留下…
展开
-
数据结构与算法总结
最近刚刚学完邓俊辉数据结构这本书,但是看完一遍之后好像印象不是特别深刻,趁着研一的尾巴把这些这是都梳理一遍。将分为两个部分进行梳理—数据结构,算法。数据结构1、向量(数组) 在程序设计语言,都将数组作为一种内置的数据类型,支持对异族相关元素的存储组织与访问操作。具体地,若集合S由n个元素组成,且各元素之间具有一个先行次序,则可将它们存放起始于地址A物理位置连续的一段存储空间,并统称为数组(array)。 按照面向对象思想中的数据抽象原则,可对以上的数组结构做一般性推广,使得其以上特性更具有普原创 2020-05-31 23:10:30 · 419 阅读 · 0 评论 -
c++实现快速排序
快速排序是对冒泡排序的一种改进,由 C.A.R.Hoare(Charles Antony Richard Hoare,东尼·霍尔)在 1962 年提出。快速排序的核心思维每次都取数组的第一个元素作为基准元素,凡是大于这个基准元素的都放在他的右边,凡是小于这个基准元素的都放在它的左边,具体步骤如下:设置两个变量i和j(也称为哨兵),令序列第一个元素作为基准元素i指向序列的最左边,j指向序列的最右边,j从右往左试探,i从左往右试探,直到j找到小于基准的数就停止,i找到大于基准的数就...原创 2020-05-27 22:36:20 · 3494 阅读 · 4 评论 -
二叉堆(c++实现)
二叉堆的介绍二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。示意图如下:二叉堆一般都通过"数组"来实现。数组实现的二叉堆,父节点和子节点的位置存在一定的关系。有时候,我们将"二叉堆的第一个元素"放在数组索引0的位置,有时候放在1的位置。当然,它们的本质一样(都是二叉堆),只是实现上稍微有一点点的区别。假设"第一个元素"在数组中的索引为 0 的话,则原创 2020-05-17 14:20:50 · 857 阅读 · 0 评论 -
AVL树(c++)
最近学习了AVL树,书上讲解的第一遍没怎么看懂,在网上搜到一篇不错的贴子,然后结合自己的理解将知识记录下来以便以后的温习回顾AVL树简介AVL树的名字来源于它的发明作者G.M. Adelson-Velsky 和 E.M. Landis。AVL树是最先发明的自平衡二叉查找树(Self-Balancing Binary Search Tree,简称平衡二叉树)。一棵AVL树有如下必要条件:条...原创 2020-05-04 11:00:14 · 274 阅读 · 0 评论 -
用逆波兰表达式制作一个简易的计算器(中缀表达式转后缀表达式)
介绍最近在学习c++的数据结构时,学到对表达式的求值,正好又看到一个比较基础的c++程序设计题目,即设计一个简易的计算器首先我们求一个表达式的值时用的是中缀表达式,例如求3 + 6 / 2的值时,我们会先计算6/2的值然后在计算加法,但是在计算机中并不会这么聪明的知道计算的优先级,因此我们需要将表达式转换称为计算机能理解的表达式,这里就涉及到数据结构中的中缀表达式转后缀表达式。中缀表达式转后...原创 2020-04-19 23:54:00 · 249 阅读 · 0 评论