![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
1101010101
这个作者很懒,什么都没留下…
展开
-
栈(Stack)——后进先出(LIFO)的数据结构(Data Structures)
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。------------摘自百度百科。顾名思义,栈也就是一个原创 2017-09-24 16:21:17 · 6192 阅读 · 0 评论 -
常见的几种排序算法(java和C++版)(参考《算法》)
博主这里要讲的几种排序算法包括(从难到易):1.冒泡排序(最low的算法)2.插入排序3.希尔排序4.并归排序(自顶向下)5.并归排序(原地并归)6.快速排序7.快速排序的三项切分8.堆排序9.混合排序冒泡排序:(1)简介:这是最原始,最简单的排序,几乎不需要额外的空间(2)基本原理:通过循环将最大的元素移到最末端或者最前端,俗称冒泡!(原创 2017-07-02 12:10:49 · 317 阅读 · 0 评论 -
链表与表——随心所欲地进出任何队列
表的定义如果说有什么数据结构是人人都能想到的,则非表结构莫属。那么作为一个数据结构的表结构具有什么特征呢?显然,一个表的本质也是一种数据访问方式:一种可以对标的任意位置进行访问的方式,根据这个思路,可以对表结构给出如下的定义/表结构是一个某类型数据项组成的有穷序列,它支持下述操作:(1) 创建一个空表; (2) 判断一个表是否为空;(3) 计算一原创 2017-07-04 16:43:27 · 272 阅读 · 0 评论 -
二叉查找树
二叉查找树树在数据结构里面是一种非常自然的数据结构,很多自然和人类社会的现象抽象出来都很自然地形成一棵树.例如,如果将一个组织机构的管理层次画在纸上,可能看上去就像一棵倒过来的数。 事实上,人类社会的很多管理层次架构都可以用树的形状来表示。而将这种结构在计算机中予以表示就是数据结构里面的数。那么数据结构是如何对树定义的呢?树结构的定义要得出树的定义,我们需要对树进行抽象,可以发现树由节点和连线构成原创 2017-10-22 14:27:41 · 301 阅读 · 0 评论 -
查找操作-----常数查找
查找操作—–常数查找对于很多人来说,折半查找的对数级O(logn)时间复杂性是可以接受的。问题是,折半查找虽然有着对数级的时间复杂性,但它只能用在有序序列上。而对数列的排序需要(nlogn)的时间。常见的几种排序算法(java和C++版)(参考《算法》)一个 这样一来折半查找的综合成本实际上是高于O(logn)的。更严峻的是,查找问题通常具有两个特点:一是查找的范围很大;二是查找是一个频繁的操作原创 2017-10-17 18:36:34 · 552 阅读 · 0 评论 -
查找操作------顺序查找
之前讨论了表结构链表与表——随心所欲地进出任何队列.制表的目的就是为了以后的查看或者查找方便,如果制表后又不在表上进行查找,那么制表就变得毫无意义了."查找"就是在一组数据项里面查找一个特定的元素.所以查找有时也称为搜索.但实际上搜索和查找也不是完全一样.查找要做的是在一个序列或集合里面查看是否存在某个特定的元素.这和一般的搜索并不完全相同,因为搜索并不一定要事先知道要搜索什么.事实上,查找是原创 2017-10-17 12:48:32 · 552 阅读 · 0 评论 -
链接队列(Link Queue)——队列的链接实现
之前讨论的连续实现的队列结构(队列(Queue)——先进先出(FIFO)的数据结构(Data Structures))与连续栈结构存在着同样的缺点,即都需要大片连续的存储空间。而这个问题在队列结构里更加严重。解决的办法则与连续栈结构问题的办法一样:使用链接队列。链接队列实现除了不需要连续空间外,其所支持的操作类型和数量与连续队列完全一样。连接队列的类定义与连续队列相比,数据成员为头尾两个指向N原创 2017-09-25 21:29:27 · 2536 阅读 · 0 评论 -
队列(Queue)——先进先出(FIFO)的数据结构(Data Structures)
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。----------摘自百度百科在日常生活中,排队是司空见惯的。我们去食堂打饭需要排队,买票需要排队,上下飞机也需要排队.其实,生活中到处都是队列形式,从抽象层面上看,凡是两头原创 2017-09-24 20:33:43 · 18591 阅读 · 0 评论 -
链接栈(Link Stack)———— 栈的链接实现
在栈的实现上,采用的是连续分配的数组。这样的栈结构有一个缺陷,即需要大片连续的存储空间。栈(Stack)——后进先出(LIFO)的数据结构(Data Structures)利用非连续空间的方式是链接。而以链接方式实现的栈就叫做链接栈或者栈的链接实现。在一个链接栈的结构里,记录之间不一定需要在物理储存空间上相连。每条记录除了存放数据项外,还存放一个指针,用来指向链接栈里的下一条记录。而其所指原创 2017-09-24 19:01:37 · 3285 阅读 · 0 评论 -
查找操作------折半查找(二分查找)
对于无序的序列,可以使用排序来对序列中的元素排列从而使序列呈升序或降序列.而对这样一个有序的序列来讲,进行顺序查找就显得不合时宜了.那么在序列元素有序排列的情况下,应该如何实现排序呢?以在图书馆查找需要的图书为例,当获得需要的图书编号后,就可以在书架上查找这本书了,此时,是将书架上的书一本本地翻看查找,还是放到一本书的编号后,跳过一部分书在查找呢?显然,大部分人都会选择后者.这种查找方法就原创 2017-10-17 13:11:26 · 1416 阅读 · 0 评论