精华内容
下载资源
问答
  • 建议初学数据结构的同学直接使用C,绝不建议使用Java。C能让你进一步了解底层的代码的实现和算法思想,Java封装太深,让人很容易忽略底层代码(底层代码不容易看到)。对于算法我建议使用C++或是Java,算法侧重思想和...

    是不是因为java语法比较简单,容易实现,直接接触算法思想,而不会像使用c++那样有很多语法细节?

    建议初学数据结构的同学直接使用C,绝不建议使用Java。C能让你进一步了解底层的代码的实现和算法思想,Java封装太深,让人很容易忽略底层代码(底层代码不容易看到)。对于算法我建议使用C++或是Java,算法侧重思想和实现,语言其次了(在不考虑算法性能的情况下)。如果可以最好都用C,会是你未来受益无穷。

    算法跟语言并没有什么关系。选择自己最擅长的算法即可

    算法的话,如果你是在校的学生,老师一般会要求用C进行算法的实现的,java好多的功能都是有现成的接口进行调用的。有时间会让你忽略底层的一些东西。

    这是要撕逼啊。

    你说的三个语言我算是都学过,C++和Java都是不错的选择。

    多说无妨,容易不容易都是具有主观性的。你不如尝试买3本C、C++、Java语言描写的算法书都浅看一遍,喜欢就学下去。

    其实学习数据结构的话,个人建议你用C语言吧!因为C语言可以让你更接近底层,比如内存的分配

    这取决于你打算从练习中学到什么,算法很多情况下是语言无关的,但是如果想理解很基本的数据类型数据结构的操作(比如数组和链表为什么在不同领域分别有不可替代的用处),那最好就绕过已经对这些基本结构进行过的封装。java c++已经对集合类型做了很不错的封装,有的c库也做了这样的事情,所以更多的应该是去绕过这些已经实现了的API用简单数据类型配合控制、循环、函数等机制去实现,而不太应该说绕过某个语言

    毫无疑问,c++是你最好的选择。

    重要的是思想 那个语言无所谓 学Java你就看java版本的 学c你就看c版本的 c++你就看c++版本的 纠结那么多 费那么多时间 根本没有什么卵用

    学习数据结构用C,学习算法用C++/JAVA,

    刚开始学数据结构和算法,用C

    算法与语言无关,算法是一种想法,语言是一种实现。

    最近我要复习算法的东西,我使用 Golang。

    算法应该是比语言更高一层的东西,你能明白算法的思想,随便换一种语言你都应该能实现。

    假设某种算法你只能在特定的一个语言下实现,那么你也只能算是学会语言,而不是算法。

    算法是内功,语言只是武器而已。内功高深的人用什么武器都无所谓的

    为什么要用C?国外入门都用python,因为简单。所以你考虑今后会用什么语言,显然Java更具有优势,而且学数据结构就学数据结构,Java具有更好的封装性,更简单方便。

    支持以上全部争论。

    C语言挺好的,但是也有一些缺点,比如到了hash那里,用C就稍微有点麻烦。Java太大了,封装太多。还是那句老话:程序=数据结构+算法。语言上没必要纠结,你觉得什么语言熟就用什么。

    展开全文
  • 本数据结构与算法书籍推荐

    千次阅读 2021-05-20 22:57:29
    学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的...本书是算法分析的经典名作(经典不太恰当,应该是圣经或史诗),被科学美国人列为20世纪12大科学名著之一(和Di.

    学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。在这里列出一些我看过或者准备看的算法书籍,以供参考。

    第一名

    原书名:The Art of Computer Programming

    中文名:计算机程序设计艺术

    作者:Donald E.Knuth

    难度:★★★★★

    个人评价:★★★★★

    推荐程度:★★★

    本书是算法分析的经典名作(用经典不太恰当,应该是圣经或史诗),被科学美国人列为20世纪12大科学名著之一(和Dirac的量子力学,Einstein 的广义相对论,von Neumann 的博弈论的著作等齐名)。其亮点在于其超乎寻常的数学技巧,要求读者拥有极高的数学修养,只要你坚持忍耐,一旦读懂了,你的算法和程序设计水平也会达到更高的档次,你会对程序设计有一种截然不同的体会和领悟,就是“道”(Tao)。

    书的排版很漂亮(得益于作者的Tex系统),看起来很舒服。作者的文笔很好,写得生动活泼,读起来荡气回肠(英文版)。习题多且精华,触及算法和程序本质,书后有几乎所有习题的答案(占了整全书篇幅的1/4),书中的分析方法体现了作者严谨的风格。不过本书的程序不是用我们熟悉的高级语言描述的,而是作者设计的MIX语言。

    整套书原计划出七卷,现在出了三卷:基本算法,半数值算法,排序和搜索,第四卷组合算法跳票了20年,Knuth称在2008年推出。本书有中文版,不过建议读者选用英文版,因为都学到这个程度了,英语应该不会有大困难了。

    引用一句话“在我们的有生之年,可能会看到C++的消亡,但Knuth和他的程序设计艺术,将永远留在我们的心里。”

    第二名

    原书名:Introduction to Algorithms

    中文名:算法导论

    作者:Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest,Clifford Stein

    难度:★★★

    个人评价:★★★★★

    推荐程度:★★★★★

    本书俗称CLRS(作者名字的简写),算法的经典教材,堪称算法分析著作中的“独孤九剑”。作者之一Ronald L.Rivest 由于其在公开秘钥密码算法RSA上的贡献获得了ACM图灵奖。

    全书内容全面,结构清晰,6个部分1000多页把数据结构算法的主要内容都包含了。作者用图表,伪码解释每一个算法,通俗易懂而不失严谨性,英文比较简单,语言流畅,因此,与TAOCP相比,这本书更适合初学者,不要求读者拥有很强的数学背景和丰富的编程经验。

    书中习题安排合理,难度适中,在网上有全部习题的答案,网上还有作者在MIT讲述本书的课程的录像,可谓资源丰富,值得注意的是书中每一章后面都有一个Chapter notes,了解一下历史,看一下作者推荐的材料是不错的(如果你能找到的话)。

    第三名

    原书名:Data Structures and Algorithms Analysis in C/C++/JAVA

    中文名:数据结构与算法分析——C语言描述/C++描述/Java语言描述

    作者:Mark Allen Weiss

    难度:★★★

    个人评价:★★★★★

    推荐程度:★★★★★

    《数据结构与算法分析——C语言描述》(Data Structures and Algorithms Analysis in C)第二版,Mark Allen Weiss著,天津师范大学冯舜玺译,机械工业出版社。Weiss教授的数据结构经典教材三部曲之一,其中的C语言描述版本,也就是本书,被称为20世纪最重要的30本计算机教材之一。Mark Allen Weiss(马克?爱伦?韦斯),1987年在普林斯顿大学获得计算机科学博士学位,师从著名算法大师Robert Sedgewick,现任美国佛罗里达国际大学计算与信息科学学院教授。他曾经担任全美AP(Advanced Placement)考试计算机学科委员会的主席(2000-2004)。他的主要研究方向是数据结构,算法和教育学。中文版翻译质量很好。数学公式太多。网上可以下载书中代码,但是没有输出结果,也没有习题答案。

    《数据结构与算法分析——C++描述》(Data Structures and Algorithms Analysis in C++)第三版,Mark Allen Weiss著,张怀勇等译,机械工业出版社。Weiss教授的数据结构经典教材三部曲之一。

    《数据结构与算法分析——Java语言描述》(Data Structures and Algorithms Analysis in Java)第二版,Mark Allen Weiss著,天津师范大学冯舜玺译,机械工业出版社。Weiss教授的数据结构经典教材三部曲之一。

    第四名

    原书名:Introduction to The Design & Analysis of Algorithms

    中文名:算法设计与分析基础

    作者:Anany Levitin

    难度:★★★

    个人评价:★★★★

    推荐程度:★★★★

    算法书的另一种写法,以方法为主线,如Brute-Force, Divide-and-Conquer, Greedy techniques,书里面有很多有趣的习题

    第五名

    原书名:Data Structures, Algorithms, and Applications in C++

    中文名:数据结构算法与应用-C++语言描述

    作者:Sartej Sahni

    译者:汪诗林等

    难度:★★★

    个人评价:★★★

    推荐程度:★★★

    不少人推荐这本书,但我个人觉得这书不怎么样,中文版翻译水平差强人意,数据结构算法部分把该讲的都讲了,但没什么突出的地方,反而C++倒说了不少,代码的水平也不怎么样。

    从ACCU的评价上看,书中的实现与BOOST和STL相比相去甚远。不过这书有很多实际问题,可以看一看。

    第六名

    原书名: Programming Pearls

    中文名: 编程珠玑

    作者: Jon Bentley

    难度:★★★

    个人评价:★★★★

    推荐程度:★★★★

    编程珠玑:学习算法不仅需要像Alogrithms,算法导论这样的重量级的内功心法,像《编程之美》、《编程珠玑》这样的轻量级的轻功身法也必不可少。

    前些年网上不是很流行像“给你10亿个数,找到最大的n个”或者“给你10亿个数,找出现次数最多的那个数”之类的百度面试题吗?看了此书你就知道怎么解决了。

    相比于《编程之美》来说,本书中的示例技巧性略低一些,但是也更有实际应用价值一些。

    第七名

    原书名:Algorithm Design

    中文名: 算法设计

    作者: Jon Kleinberg / Éva Tardos

    难度:★★★

    个人评价:★★★★

    推荐程度:★★★★

    Algorithm Design 算法设计 很经典的一本书,很久之前看的。个人觉得“算法设计”比“算法导论”好。

    我是先看到“算法导论”后看的“算法设计”,看“算法设计”的时候还是很享受这本书的,同时也把知识巩固了一遍

    第八名

    原书名:算法艺术与信息学竞赛

    中文名: 算法艺术与信息学竞赛

    作者: 刘汝佳

    难度:★★★

    个人评价:★★★★

    推荐程度:★★★★

    算法艺术与信息学竞赛:如果算法导论是九阳神功,那这本无疑就是九阴真经。

    本书是专为参加一些诸如ACM之类程序设计比赛的同学而写的,江湖人称“黑书”。里面讲的都是一些在编程比赛中常用的算法、数据结构,以及一些数论和计算几何等。我虽然并不搞竞赛,但也从此书中受益颇多。

    第九名

    原书名:Algorithms in C,Algorithms in C++,Algorithms in Java

    中文名:算法I-IV(C实现),算法V(C实现)(C++实现)(Java实现)

    作者:Robert Sedgewick

    难度:★★★

    个人评价:★★★★★

    推荐程度:★★★★

    Robert Sedgwick是Knuth的学生,现在是princeton的教授。这是三个系列,与上面用伪码描述算法不同,本书用现今流行的语言C,C++,Java描述.那么选拿哪一种语言好呢?从算法的角度看,任何高级语言都是没区别的,虽然实现算法的时候,到了语言相关的层面会有一些细微区别,但影响不大。

    个人推荐C++的,因为价钱最便宜:)。本书的一个特点就是例子取得很好,代码很清晰。有中文版

    第十名

    原书名:Algorithms Design Techniques and Analysis

    中文名:算法设计技巧与分析

    作者:M.H.Alsuwaiyel

    难度:★★★★

    个人评价:★★★★

    推荐程度:★★★★

    这本书对一般算法书较少涉及的概率算法和近似算法作了重要的补充

    展开全文
  • 数据结构教材:推荐使用的一是《数据结构》(对408统考来说,这本书难度有点大)、《数据结构习题与解析》重点内容是:栈和队列(栈和队列基本操作、后缀表达式等)、线性表(插入和删除、时间复杂度)、树与二叉树(性质、...

    2020年计算机考研复习已经开始,新东方在线在此整理了2020考研计算机备考:数据结构参考书及复习重点,希望能帮助大家!

    数据结构

    教材:推荐使用的一是《数据结构》(对408统考来说,这本书难度有点大)、《数据结构习题与解析》

    重点内容是:栈和队列(栈和队列基本操作、后缀表达式等)、线性表(插入和删除、时间复杂度)、树与二叉树(性质、存储方式、遍历、哈夫曼树、遍历算法等)、图(存储方式、遍历、连通性问题、关键路径、最短路径等)、查找(二叉排序树、平衡二叉树、B-树、哈希表),内部排序。串与文件这两章就呵呵了,稍微看看就好了。

    有的同学经常问,没学过C语言可不可直接学数据结构?我觉得可以,但对于一个计算机专业的学生来说,不会一门语言是绝对不可以的,况且许多学校复试时要考上机。没有C语言的基础看数据结构,刚开始会有些难度,但入门之后就简单很多了。数据结构45分,有两道大题,一般难度不会太大,而且编程只需要类C就可以,所以只对于考研初试来说,

    C语言不需要掌握的特别熟练。

    以上推荐的参考书在不同学校使用的版本可能会不同,考生们最好提前查阅一下所报学校的参考用书。总之,还是希望能给你带来一些帮助。

    展开全文
  • 数据结构:八种数据结构大全!

    千次阅读 多人点赞 2021-07-29 12:36:10
    数据结构 1.1 数据结构概述 数据结构是计算机存储、组织数据的方式;通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构的优良将直接影响着我们程序的性能;常用的数据结构有:数组(Array)...

    数据结构

    1.1 数据结构概述

    数据结构是计算机存储、组织数据的方式;通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构的优良将直接影响着我们程序的性能;常用的数据结构有:数组(Array)、栈(Stack)、队列(Queue)、链表(Linked List)、树(Tree)、图(Graph)、堆(Heap)、散列表(Hash)等;

    在这里插入图片描述

    1.2 数据结构的分类

    1.2.1 排列方式

    1)集合

    集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;

    在这里插入图片描述

    2)线性结构

    线性结构:数据结构中的元素存在一对一的相互关系;

    在这里插入图片描述

    3)树形结构

    树形结构:数据结构中的元素存在一对多的相互关系;

    在这里插入图片描述

    4)图形结构

    图形结构:数据结构中的元素存在多对多的相互关系;

    在这里插入图片描述

    1.2.2 逻辑结构

    数据结构按逻辑上划分为线性结构非线性结构

    • 线性结构有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继。

    典型的线性表有:链表、栈和队列。它们共同的特点就是数据之间的线性关系,除了头结点和尾结点之外,每个结点都有唯一的前驱和唯一的后继,也就是所谓的一对一的关系。

    • 非线性结构:对应于线性结构,非线性结构也就是每个结点可以有不止一个直接前驱和直接后继。常见的非线性结构包括:树、图等。

    1.3 数据结构的实现

    1.2.1 数组

    • 数组(Array):数组是有序元素的序列,在内存中的分配是连续的,数组会为存储的元素都分配一个下标(索引),此下标是一个自增连续的,访问数组中的元素通过下标进行访问;数组下标从0开始访问;

    • 数组的优点是:查询速度快;

    在这里插入图片描述

    • 数组的缺点是:删除增加、删除慢;由于数组为每个元素都分配了索引且索引是自增连续的,因此一但删除或者新增了某个元素时需要调整后面的所有元素的索引;

    新增一个元素40到3索引下标位置:

    在这里插入图片描述

    删除2索引元素:

    在这里插入图片描述

    总结:数组查询快,增删慢,适用于频繁查询,增删较少的情况;

    1.2.2 链表

    • 链表(Linked List):链表是由一系列节点Node(也可称元素)组成,数据元素的逻辑顺序是通过链表的指针地址实现,通常情况下,每个节点包含两个部分,一个用于存储元素的内存地址,名叫数据域,另一个则指向下一个相邻节点地址的指针,名叫指针域;根据链表的指向不同可分为单向链表、双向链表、循环链表等;我们本章介绍的是单向链表,也是所有链表中最常见、最简单的链表;

    链表的节点(Node):

    在这里插入图片描述

    完整的链表:

    在这里插入图片描述

    • 链表的优点:新增节点、删除节点快;

    在链表中新增一个元素:

    在这里插入图片描述

    在单向链表中,新增一个元素最多只会影响上一个节点,比在数组中的新增效率要高的多;

    在链表中删除一个元素:

    在这里插入图片描述

    • 链表的缺点:
      • 1)查询速度慢,查询从头部开始一直查询到尾部,如果元素刚好是在最尾部那么查询效率势必非常低;
      • 2)链表像对于数组多了一个指针域的开销,内存相对占用会比较大;

    总结:数据量较小,需要频繁增加,删除操作的场景,查询操作相对较少;

    1.2.3 栈

    • 栈(Stack):是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出从栈顶放入元素的操作叫入栈(压栈),取出元素叫出栈(弹栈)。

    入栈操作:

    在这里插入图片描述

    出栈操作:

    在这里插入图片描述

    栈的特点:先进后出,Java中的栈内存就是一个栈的数据结构,先调用的方法要等到后调用的方法结束才会弹栈(出栈);

    1.2.4 队列

    • 队列(Queue):队列与栈一样,也是一种线性表,其限制是仅允许在表的一端进行插入,而在表的另一端进行删除。队列的特点是先进先出,从一端放入元素的操作称为入队,取出元素为出队;

    在这里插入图片描述

    队列的特点:先进先出;

    1.2.5 树

    是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:

    • 1)每个节点有0个或多个子节点;
    • 2)没有父节点的节点称为根节点;
    • 3)每一个非根节点有且只有一个父节点;
    • 4)除了根节点外,每个子节点可以分为多个不相交的子树;
    • 5)右子树永远比左子树大,读取顺序从左到右;

    树的分类有非常多种,平衡二叉树(AVL)、红黑树RBL(R-B Tree)、B树(B-Tree)、B+树(B+Tree)等,但最早都是由二叉树演变过去的;

    二叉树的特点:每个结点最多有两颗子树

    在这里插入图片描述

    1.2.6 堆

    • 堆(Heap):堆可以看做是一颗用数组实现的二叉树,所以它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。

    在这里插入图片描述

    堆的特性:如果一个结点的位置为k,则它的父结点的位置为[k/2],而它的两个子结点的位置则分别为2k和2k+1。这样,在不使用指针的情况下,我们也可以通过计算数组的索引在树中上下移动:从arr[k]向上一层,就令k等于k/2,向下一层就令k等于2k或2k+1。

    堆的定义如下:n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时,称之为堆;

    (ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >= k2i+1)满足前者的表达式的成为小顶堆(小根堆),满足后者表达式的为大顶堆(大根堆),很明显我们上面画的堆数据结构是一个大根堆;

    大小根堆数据结构图:

    在这里插入图片描述

    一般来说将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。

    1.2.7 散列表

    • 散列表(Hash),也叫哈希表,是根据键和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。它利用数组支持按照下标访问的特性,所以散列表其实是数组的一种扩展,由数组演化而来。

    散列表首先需要根据key来计算数据存储的位置,也就是数组索引的下标;

    • HashValue=hash(key)

    散列表就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里,这种存储空间可以充分利用数组的查找优势来查找元素,所以查找的速度很快。

    在这里插入图片描述

    在散列表中,左边是个数组,数组的每个成员包括一个指针,指向一个链表的头,当然这个链表可能为空,也可能元素很多。我们根据元素的一些特征把元素分配到不同的链表中去,也是根据这些特征,找到正确的链表,再从链表中找出这个元素。

    1.2.8 图

    • 图(Graph):图是一系列顶点(元素)的集合,这些顶点通过一系列边连接起来组成图这种数据结构。顶点用圆圈表示,边就是这些圆圈之间的连线。顶点之间通过边连接。

    图分为有向图和无向图:

    • 有向图:边仅仅连接两个顶点,没有其他含义;
    • 无向图:边不仅连接两个顶点,并且具有方向;

    在这里插入图片描述

    例如,我们可以把图这种数据结构看做是一张地图:

    地图中的城市我们看做是顶点,高铁线路看做是边;很显然,我们的地图是一种无向图,以长沙到上海为例,经过的城市有长沙、南昌、杭州、上海等地;那么从上海也可以按照原有的路线进行返回;

    在这里插入图片描述

    实现了图这种数据结构之后我们可以在此数据结构上做一些复杂的算法计算,如广度优先搜索算法、深度优先搜索算法等;

    • 广度搜索:搜索到一个顶点时,先将此顶点的所有子顶点全部搜索完毕,再进行下一个子顶点的子顶点搜索;

    在这里插入图片描述

    例如上图:以武汉为例进行广度搜索,

    1)首先搜索合肥、南昌、长沙等城市;

    2)通过合肥搜索到南京;

    3)再通过南昌搜索到杭州、福州,

    4)最终通过南京搜索到上海;完成图的遍历搜索;

    不通过南京搜索到杭州是因为已经通过南昌搜索到杭州了,不需要再次搜索;

    • 深度搜索:搜索到一个顶点时,先将此顶点某个子顶点搜索到底部(子顶点的子顶点的子顶点…),然后回到上一级,继续搜索第二个子顶点一直搜索到底部;

    在这里插入图片描述

    例如上图:以武汉为例进行深度搜索,

    1)首先搜索合肥、南京、上海等城市;

    2)回到武汉,进行第二子顶点的搜索,搜索南昌、杭州等地;

    3)回到南昌,搜索福州;

    4)回到武汉,搜索长沙;

    图是一种比较复杂的数据结构,在存储数据上有着比较复杂和高效的算法,分别有邻接矩阵 、邻接表、十字链表、邻接多重表、边集数组等存储结构。我们本次了解到这里即可;

    记得点赞!!!

    展开全文
  • 因为教材中的概念之间存在冲突,所以广泛浏览各类教材、视频,对数据结构进行系统、辩证的梳理。建议考研看不懂教材或者视频的同学看一看。
  • 数据结构是计算机存储、组织数据的方式。一种数据结构可以带来更高的运行或者存储效率。数据在内存中是呈线性排列的,但是我们可以使用指针等道具,构造出类似“树形”的复杂结构。下面介绍八个常见的数据结构
  • 王道考研数据结构笔记

    万次阅读 多人点赞 2021-04-15 22:43:48
    ##2022王道考研数据结构笔记 第二章 线性表(更新中) 我也看得太慢了吧sos 2.1 线性表的定义和基本操作 要点: 线性表的基本操作——创销、增删、改查 传入参数时,何时要引用 & 2.2 线性表的顺序表示 ...
  • 专升本数据结构复习

    千次阅读 多人点赞 2021-03-03 13:48:51
    数据结构知识点总汇 主要参考书目: 程海英老师的《数据结构(C语言版)》教材 严蔚敏,李冬梅,吴伟民.《数据结构(C语言版)》 说明:这是本人专升本上岸一年后写的,篇包含知识点和例题总结。因为是当时自己...
  • 专升本计算机综合-数据结构

    千次阅读 2021-04-09 23:09:05
    数据结构数据结构是数据的组织形式,可以用来表征特定的对象数据。在计算机程序设计中,操作的对象是各式各样的数据,这些数据往往拥有不同的数据结构,例如数组、结构体、指针和链表等。 数据结构+算法+程序...
  • 计算机考研408(数据结构(持续更新))数据结构一、数据结构(一)基本概念:1、数据2、 数据元素(数据基本单位)(由若干数据项组成)(整体)(元素)3、 数据结构:(有关系的数据元素集合)(值集)4、数据对象:(是性质相同...
  • InnoDB中非主键索引使用的是B-Tree数据结构,而主键索引使用的是B+Tree。B-TreeB-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中间过程,...
  • 大家,我是小林。 昨天有位关注我一年的读者找我,他去年关注我公众后,开始...这里先给大家分享些计算机必读书籍,获取方式:计算机必读书籍(含下载方式),包含数据结构与算法、操作系统、计算机网络、数据库、L
  • 数据结构C语言版严蔚敏 是《data structures and algorithm analysis in c》一书第2版的简体中译本。原书曾被评为20世纪顶尖的30部计算机著作之一,作者mark allen weiss在数据结构和算法分析方面卓有建树,他的数据...
  • 数据结构精讲与习题详解

    千次阅读 2020-12-31 08:46:36
    数据结构精讲与习题详解殷人昆电子版本书是清华大学出版社出版的《数据结构(C语言版)》(第2版)的配套教材,对“数据结构”课程常用习题进行了解析,对许多不易通过自学理解的概念和知识做了深入讲解,并针对“数据...
  • 数据结构 约瑟夫环

    千次阅读 多人点赞 2021-02-01 10:15:06
    目录 一、需求分析 功能需求: 界面需求: 二、概要设计 接口设计 数据结构设计 三、详细设计 四、调试分析 五、用户手册 六、测试结果 一、需求分析 功能需求: 设编号为1,2,…,n(n>0)个人按顺时针方向围坐一圈...
  • 数据结构:大学的数据统计

    千次阅读 2020-12-22 20:10:09
    实验:大学的数据统计(树的应用) 一、实验目的 掌握树的逻辑结构和存储结构,熟练使用树遍历算法进行问题的求解。 二、实验内容 问题描述 1.编写文件tree.h,实现树的孩子链存储结构。 2.使用tree.h,编写程序exp7....
  • 30 个重要数据结构和算法完整介绍(建议收藏保存)

    万次阅读 多人点赞 2021-06-07 08:02:06
    数据结构和算法 (DSA)通常被认为...它包括 15 个最有用的数据结构和 15 个最重要的算法,可以帮助您在学习中和面试中取得成绩并提高您的编程竞争力。后面等我还会继续对这些数据结构和算法进行进一步详细地研究讲解。
  • 按照我下面整理的思路学习,保证能让你大幅提升数据结构与算法实践能力! 许多人有这样的疑问,《数据结构与算法》理论学习完了,但是做题还是不会;有的同学感觉数据结构与算法不知道怎么学习。那看这篇文章就对了...
  • 程序是对学生的成绩管理做一个简单的模拟,菜单选择方式完成下列功能: 登记学生成绩;查询学生成绩;插入学生成绩;删除学生成绩。把问题看作对线性表的操作来完成。 #include <stdio.h> #include ...
  • 《大话数据结构》-pdf

    2021-08-11 15:30:40
    在这一行从18年入行到现在满打满算也才两年半多一点,还是一个程序员界的小学生,当初学习过程中带我的老前辈分享给我的这本书,受益匪浅,希望对大家有帮助。 链接:...
  • 数据结构:树(Tree)【详解】

    千次阅读 多人点赞 2021-02-22 10:22:25
    二叉树的顺序存储结构和链式存储结构;二叉树的遍历;线索二叉树的基本概念和构造 树、森林 树的存储结构;森林与二叉树的转换;树和森林的遍历 树与二叉树的应用 二叉排序树;平衡二叉树;哈夫曼树和哈弗编码...
  • 数据结构学习-知识点总结(持续更新)

    万次阅读 多人点赞 2020-12-25 20:07:16
    数据结构学习记录第一章 绪论1.1 数据结构的基本概念数据结构的三要素:逻辑结构、存储结构(物理结构)、数据的运算。 逻辑结构分为线性结构和非线性结构。
  • Redis的五种数据结构的底层实现原理

    万次阅读 2021-01-31 02:49:22
    Redis的五种数据结构的底层实现原理: 1、String底层实现方式:动态字符串sds 或者 long; 2、Hash底层实现方式:压缩列表ziplist 或者 字典dict; 3、List在Redis3.2之前的底层实现方式:压缩列表ziplist 或者 双向...
  • Python数据结构与算法(10)---二进制数据结构Struct

    万次阅读 热门讨论 2021-04-19 12:20:29
    目录前言 前言 在C/C++语言中,struct被称为结构体。而在Python中,struct是一个专门的库,用于处理字节串与原生Python数据结构类型之间的转换。
  • 数据结构】图解七大排序

    万次阅读 多人点赞 2021-11-19 21:59:16
    } } } 选择排序 ③直接选择排序 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始(末尾)位置,直到全部待排序的数据元素排完 。 动图演示 以每次选出最小值为例 代码实现 void...
  • JavaScript数据结构之栈结构

    千次阅读 多人点赞 2021-01-17 16:36:12
    JavaScript数据结构之栈结构前言一、栈结构是什么?二、常见的栈结构使用:**函数调用栈**、**递归等**。三、使用步骤1.创建Stack类2.使用栈总结 前言 随着前端的兴起,JavaScript这门语言也越来越受欢迎。接下来,...
  • ❤️《画解数据结构》三张动图,画解哈希❤️

    万次阅读 多人点赞 2021-08-21 13:10:35
    O(1) 的数据结构
  • 太过瘾了,最全的Python数据结构总结,太干货了!

    千次阅读 多人点赞 2020-12-28 10:28:47
    其实的程序员在做项目的时候都会考虑到数据结构那种数据结构更节省内存,更加提高效率。 这是一门硬功夫,需要不断的在实战项目中推敲思考,了希望篇总结对大家有帮助。 有热门推荐????1. 超全Python IDE...
  • 高级数据结构(Ⅱ)优先队列(Priority Queue) 许多应用程序都需要处理有序的元素,但不一定要求它们全部有序,或是不一定要一次就将它们排序。很多情况下我们会收集一些元素,处理当前键值最大的元素,然后再收集...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,160,749
精华内容 864,299
关键字:

数据结构用哪本书好

数据结构 订阅