数据结构的基本概念

(一)什么是数据结构

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

(二)为什么要了解数据结构

程序的性能瓶颈往往都跟算法和数据结构有关系,简单的说,可以让你程序跑的更快

(三)数据结构的逻辑结构

逻辑结构是指数据对象中数据元素之间的相互关系,分为以下四种:

(1)集合结构

集合结构的里面的元素关系是孤立的

(2)线性结构

线性结构里面的元素关系:一对一

(3)树形结构

树形结构里面的元素关系:一对多

(4)图结构

图结构里面的元素关系:多对多

(三)数据结构的物理结构

物理结构:是指数据的逻辑结构在计算机中的存储形式。存储结构有两种:

(1)顺序存储结构:

顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

(2)链式存储结构

链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

(四)编程语言里面常见的数据结构

数组(Array)

堆栈(Stack)

队列(Queue)

链表(Linked List)

树(Tree)

图(Graph)

堆(Heap)

散列表(Hash)

总结:

本文介绍了数据结构相关的一些概念及知识,只有理解了数据结构,才能够帮助我们更好的去设计算法和程序。

原文发布于微信公众号 - 我是攻城师(woshigcs)

原文发表时间:2018-02-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏绿巨人专栏

学习Scala: 初学者应该了解的知识

30240
来自专栏CSDN技术头条

算法入门,其实可以像读小说一样有趣

我琢磨着目录,心想终于要把这些主题搞明白了。但那本书深奥难懂,看了几周后我就放弃了。直到遇到一位优秀的算法教授后,我才认识到这些概念是多么地简单而优雅。

47940
来自专栏编程

您真的会用switch吗?

C语言的理念,程序员应该知道自己正在干什么,而且保证自己的所作所为是正确的。 switch知多少 各个case和default的顺序可以是任意的,但习惯上总是d...

22170
来自专栏程序员互动联盟

【编程之美】最优排序算法

寻找最大的K个数 从n个数中寻找最大的K个数。 01 class 两种思路: 1 保存目前找到的最大k个数,每访问一个数,就与这k个数中的最小值比较,决定是否更...

45070
来自专栏aCloudDeveloper

一个交换程序的通用版本

Author:bakari   Date:2012.9.3       交换程序是每个开始学习编程的人必学习的一个初级算法。算法思想很简单,就是为两个交换的双方...

17960
来自专栏CodingBlock

Java数据结构和算法总结-冒泡排序、选择排序、插入排序算法分析

前言:排序在算法中的地位自然不必多说,在许多工作中都用到了排序,就像学生成绩统计名次、商城商品销量排名、新闻的搜索热度排名等等。也正因为排序的应用范围如此之广...

29990
来自专栏C语言及其他语言

C语言经典笔试题

1.以下程序的结果是什么? ? A: main()函数里的i是一个未定义值 B: main()函数的i为1 C: 编译器不允许这种写法 D: main()里i的...

54670
来自专栏编程

从零基础开始学习PHP(七)

貌似有两周没有更新文章了、"忙"都是借口、不过我是真的忙、一天瞎忙活。希望多多理解。在这里我要感谢那些支持我的小伙伴、因为有你们的支持、我知道我要对我的文章以及...

25750
来自专栏五分钟学算法

看完动画你还会不懂 快速排序么

由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 -----《图解数据结构》,主要使用动画...

21950
来自专栏Spark学习技巧

深入理解 hashcode 和 hash 算法

作为一个有抱负的 Java 程序员,在经过长期的CRUD 和 HTML 填空之后必须有所思考,因为好奇心是驱动人类进步的动力之一,我们好奇,比如我们常用的 Ha...

21230

扫码关注云+社区

领取腾讯云代金券