美文网首页
浅谈数据结构

浅谈数据结构

作者: 賈小強 | 来源:发表于2019-02-17 10:59 被阅读2次

简书 賈小強
转载请注明原创出处,谢谢!

什么是数据结构?可能很多人看到这个问题的第一反应是大学课本上那些诸如线性,树形,图形数据结构等,但这未免太僵硬,有些死板,这篇文章将更深入谈谈什么是数据结构

经典的数据结构

int,double,char,String,Array算最基本的语言基础,比如java,其他的高级数据结构都可以由它们构造出来,有的语言直接就提供了高级的数据结构比如Python

如下面一张图包括了一些经典的数据结构,它们中的一些程序员每天都在使用,可以说现今世界上的所有程序都是建立在这些基础元素之上的

Classic2.png

复合的数据结构

面对复杂的世界,实际上数据结构千变万化,尤其是复合型数据结构,典型的如JSON,它本质上也是一种数据结构

{
"employees": [
    { "firstName":"Bill" , "lastName":"Gates" },
    { "firstName":"George" , "lastName":"Bush" },
    { "firstName":"Thomas" , "lastName":"Carter" }
 ]
}

灵活的数据结构

某一个变量可以可以代表各种含义,而组织在一起有某种规律的数据也可以代表某种现实的东西,在到底映射到什么真实问题上面程序员就是上帝

  1. 比如变量a=1,这个1可以代表各种东西
  2. 比如可以用数组来显示一个Bag,也可以用链表来实现一个Bag
  3. 比如下面的代码代表了一张图(每个数字代表一个顶点)
int[][] edges = { { 0, 5 }, { 4, 3 }, { 0, 1 }, { 9, 12 }, { 6, 4 }, { 5, 4 }, { 0, 2 }, { 11, 12 }, { 9, 10 },
                { 0, 6 }, { 7, 8 }, { 9, 11 }, { 5, 3 } };

而下面不同的数据组织形式代表的是同一张图

0 : 6 2 1 5 
1 : 0 
2 : 0 
3 : 5 4 
4 : 5 6 3 
5 : 3 4 0 
6 : 0 4 
7 : 8 
8 : 7 
9 : 11 10 12 
10 : 9 
11 : 9 12 
12 : 11 9 

可以发现数据结构是相当灵活的,一方面根据程序员定义,可以出现针对问题的相应数据结构,另一方面同一个问题可能有多种不同形式的数据结构

结论

当写一个程序解决一个问题,首先找到一种甚至多种数据结构来映射问题,然后就可以写相关算法解决问题了,而数据结构和算法之间相辅相成。可以先选一种直观的,然后暴力解决,然后再考虑优化做相应的改进,而怎么改进哪种好,这些问题就可以通过学习研究经典算法来估算分析

学习经典不拘泥经典,在实际情况中勇于构建数据结构,编写针对的算法,然后结合经典寻找改进,在学习经典的过程中,之所以敬畏是因为那些经典并不是任何一个人发明的,而是全世界中很多最优秀的人经过很多年才发明出来,当然可以先了解不同经典数据结构或者算法的API,思路,优劣,然后再逐步深入了解如何实现

Happy learning !!

相关文章

  • 浅谈算法和数据结构

    注:采转归档,自己学习查询使用 浅谈算法和数据结构: 一 栈和队列浅谈算法和数据结构: 二 基本排序算法浅谈算法和...

  • (313)红黑树-java实现

    引言 根据《算法》第4版。编写红黑树。 理论 参见: 浅谈算法和数据结构: 八 平衡查找树之2-3树 浅谈算法和数...

  • 常见数据结构

    参考文档数据结构中的树Bit-map空间压缩和快速排序去重浅谈算法和数据结构: 七 二叉查找树Java遍历树(深度...

  • 浅谈数据结构

    写在前面 算法前驱课上,老师让回顾一下数据结构和数据库的关系以及经典数据结构的应用识,特此整理 1.编程过程中,数...

  • 浅谈数据结构

    简书 賈小強转载请注明原创出处,谢谢! 什么是数据结构?可能很多人看到这个问题的第一反应是大学课本上那些诸如线性,...

  • 2018-08-27

    浅谈数据结构中Hash Hash在中文中有时被称作“散列”,也有时直接叫“哈希”。 基本概念:给定一个值(Key)...

  • 2020-07-02

    浅谈 浅谈模块设计宏内核 浅谈接口设计Flags 浅谈稳定性设计重试 浅谈人员业务结构设计矩阵式 浅谈接口设计 |...

  • 想当黑客?浅谈C语言编程:不会这个知识就别想了!

    浅谈C语言数据结构——链式堆栈 看到标题点进来的朋友,应该对黑客这个名词很敏感吧?我想应该是这样的,但是你们知道作...

  • 浅谈Java中的hashcode方法

    浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来...

  • 数据结构与算法---浅谈数据结构

    前言 毕业也没多久的我,发现大学好多东西都遗忘了或者没学好。自己打算从数据结构与算法开始,一点一滴在简书记录我的算...

网友评论

      本文标题:浅谈数据结构

      本文链接:https://www.haomeiwen.com/subject/vjgweqtx.html