
数据结构
fang_chuan
打打杂啦
展开
-
文件的结构
文件是逻辑上相关的记录的集合。通常一个文件的各个记录是按照某种次序排列起来的。可以按记录中关键字值的大小,也可以按各个记录存入文件的时间先后排列。这样各记录间自然形成一种线性关系,所以一般情况下,文件被看成是一种线性结构。 计算机上的文件一般分为操作系统文件和数据库文件。操作系统文件仅仅是一组连续的字符序列,无结构无解释。数据库文件是带有结构的记录文件的集合,每个记录都是一个或多个数据结构原创 2015-11-01 14:12:10 · 1623 阅读 · 0 评论 -
二叉搜索树、二叉平衡树、B-树
之前在Linux内核开发大会上听到B+树,当时不明白B+树是个什么东西,百科了一下更是看的一头雾水,翻起数据结构的书一点点看吧(数据结构要学好啊!!!)。 本文只讲求了解、明白二叉搜索树等之的概念,常见操作如插入、删除、查找,不涉及具体代码的编写,因为C、Cplus、java各有在二叉树上不同的风格,大家在项目代码见到了知道这是二叉搜索树或是B-树,知道是查找操作还是删除操作就哦了,一般我们不会原创 2015-10-26 17:24:03 · 773 阅读 · 0 评论 -
数据结构之堆
之所以把堆放在二叉树之后介绍,是因为堆跟二叉树的关系太大了,前面说了:一个大小为n的堆是一颗有n个节点的完全二叉树。若该树中每个结点的关键字值大于等于其双亲结点的关键字值。完全二叉树的根称为堆顶,它的关键字值是整棵树上最小的。这样定义的堆称为最小堆 。同理,若树中每个节点的键值小于等于其双亲节点的键值,即根/堆顶的键值是最大的,这样的树就是最大堆。 堆是n个元素的序列(k0,k1,L,k原创 2015-10-20 22:20:23 · 400 阅读 · 0 评论 -
数据结构之队列
队列(queue)是一种线性结构,定义如下:若给定队列Q=(a0,a1,…,an-1),则称a0是队头元素,an-1是队尾元素。元素a0,…,an-1依次入队,出队的顺序与入队相同,a0出队后,a1才能出队,因此又称队列为先进先出(FirstIn First Out——FIFO)的动态线性数据结构出队列只能在队头,入队列只能在队尾 队列的表示方法有顺序表示、循环表示和链式表示。 顺序表示如图头原创 2015-10-19 11:14:07 · 439 阅读 · 0 评论 -
数据结构之堆栈
之前转过一篇关于堆和栈区别的文章(貌似是被转过N遍的一篇经典),但是没跟大家详细讨论过栈、堆这个数据结构,今天就在这里说道说道,如果我说的有不对的地方,请各位不要吝啬赐教! 线性表、堆栈、队列同属于线性结构,堆栈是一种后进先出(Last Input First Output)动态线性数据结构。堆栈的表示方法同样有着顺序表示和链式表示。 先说对战的顺序表示: C++描述的顺序栈 templa原创 2015-10-19 16:23:49 · 508 阅读 · 1 评论 -
数据结构之二叉树
昨天看了一个视频,讲解Facebook、Amazon、Google啊这类名企的面试题目,始终离不开数据结构这个基础课程,围绕数据结构能出的考题实在太多。虽然我不是软件开发工程师,但作为嵌入式工程师,数据结构和算法也是必修课,一个高效的嵌入式代码离不开巧妙的数据结构和优秀的算法。 介绍二叉树之前先说说什么是树。树作为非线性数据结构,课本上的定义太抽象:树是包括n个节点的有限非空集合T,其中一个特定原创 2015-10-20 08:30:33 · 1078 阅读 · 0 评论