数据结构
花泽香瓜
talk is cheap ,show me the code.
展开
-
数据结构——02算法简介
算法简介:一、数据结构与算法的关系 虽然本门课程叫“数据结构”,但经常会讲到算法,以及它们之间的关系。在市面上也经常有诸如“数据结构与算法分析”这样名字的书。 实际上,数据结构与算法是依存关系。只谈数据结构而抛弃算法,则数据是“死”的,没有活力的;只谈算法而抛弃数据结 构,则算法无法有所依赖的操作对象,只是空谈。对于程序来说,数据结构赋予其血肉骨骼,算法赋予其灵魂思想,...原创 2018-08-14 19:49:41 · 250 阅读 · 0 评论 -
数据结构 05——树与二叉树
树与二叉树一、树的定义:1、定义:树(Tree)是n(n>=0)个节点的有限集,n=0时称为“空树”。在任意一棵非空树中:⒈有且仅有一个特定的称为根(root)的节点。⒉当n>1时,其余节点可分为m(m>0)个互不相交的有限集T1、T2……Tm,其中每一个集合本身又是一棵树,并且称之为根的子树(SubTree)。注意:⒈n>0时根节点是唯一的,不可能...原创 2018-08-30 10:22:44 · 594 阅读 · 0 评论 -
数据结构04——栈与队列
一、栈的定义定义:栈(stack):栈是限定仅在表的一端进行插入或删除操作的线性表。我们把允许插入和删除操作的一端称为栈顶(top),另一端称为栈底(bottom)。不含任何数据元素的栈称为空栈。栈又称为“后进先出(Last In First Out,简称LIFO)的线性表”,简称为LIFO结构。栈的插入操作,称为进栈/入栈/压栈。栈的删除操作,称为出栈/弹栈。不过要注意的是,...原创 2018-08-19 16:44:49 · 481 阅读 · 0 评论 -
数据结构08——排序算法
排序一、排序的基本概念与分类1、排序的定义假设含有n个记录的序列为{r1,r2,……rn},其相对应的关键字分别为{k1,k2,……kn},需确定一种序列,使其关键字满足k1<=k2<=……<=km(非递减)或k1>=k2>=……>=km(非递增)关系,即使得序列成为一个按关键字有序的序列{r1,r2,……,rm},这样的操作就称为排序。排序的依...原创 2018-08-19 16:16:53 · 231 阅读 · 0 评论 -
数据结构07——查找
查找一、查找概论各位都用过搜索引擎。搜索引擎的大概工作原理就是利用网络“爬虫”抓取并复制网页,并且可以通过该网页的链接来抓取更多的网页。那么,搜索引擎的是通过什么来抓取网页的呢?就是通过“关键字”来识别网页并抓取网页的。 查找(Searching)就是根据给个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。查找表(Search Table)是由同一类定的某型...原创 2018-08-19 15:57:25 · 371 阅读 · 0 评论 -
数据结构031——线性表顺序(上)
线性表一、线性表定义:1、线性表的定义定义:线性表(List):零个或多个数据元素的有限序列。注意:1)线性表是一个序列。也就是说,线性表的元素之间是有序的。若元素存在多个,对于其中一个元素来说,它前面的元素叫前驱,后面的元素叫后继。第一个元素无前驱,最后一个元素无后继,中间的元素只有一个前驱,一个后继。2)线性表是有限的。事实上,在计算机科学领域,我们只研究有限的序列,...原创 2018-08-19 14:00:53 · 195 阅读 · 0 评论 -
数据结构——栈和队列(整理前)
栈(stack):仅允许在一端进行插入删除操作的线性表允许插入删除操作的一端叫栈顶top ,另一端叫栈底button栈是一种“后进先出”的线性表(Last In First Out ,LIFO)栈的插入操作:压栈(Push)栈的删除操作:弹 栈(Pop)(因为第一个出栈元素是三,意味着1,2已经进栈,则二一定在一之前出栈)关于栈的操作判空:top == -1判满...原创 2018-08-15 11:37:15 · 241 阅读 · 0 评论 -
数据结构032——线性表链式(下)
一、线性表的链式存储结构前面所讲的线性表的顺序存储结构是有缺点的,最大的缺点就是插入和删除时需要移动大量的元素,这显然就需要耗费大量时间。仔细考虑一下产生该问题的原因,在于相邻元素的存储位置也具有邻居关系,它们在内存中是紧挨着的,没有空隙,自然也没有空位进行介入,而删除后留下的空隙自然也需要弥补。为了解决上述问题,我们打破常规,不再让相邻元素在内存中紧挨着,而是上一个元素留存下一个元素...原创 2018-08-14 19:50:48 · 589 阅读 · 2 评论 -
数据结构——01数据结构绪论
数据结构绪论一、数据结构起源 早期人们把计算机作为数值计算工具,就是说,人们认为计算机只能进行数据计算。因此为了解决问题,需要先从具体问题中抽象出一个适当的数据模型,设计出一个解决该模型的算法,然后再编写程序,得到一个实际的软件。可现实生活中,人们更多的不是解决数值计算的问题,而是需要一些更科学有效的手段(比如表格、索引等)的帮助,才能更好的解决问题。所以,数据结构是一门研究...原创 2018-08-14 19:50:11 · 194 阅读 · 0 评论 -
数据结构06——图(选修)
一、图的定义与相关概念在线性结构中,数据元素以线性排列,元素间存在前驱与后继关系。在树形结构中,数据元素以树形结构(层次结构)排列,每个元素可以存在多个下层元素,但是只允许存在一个上层元素。如果元素间存在比较复杂的关系,即每个元素都与多个元素存在关系,则元素间的关系可以用“图”来表示。图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成的,通常表示为G(V,E),其中G表示图,...原创 2018-08-30 10:24:42 · 291 阅读 · 0 评论