数据结构(一)之基础知识

学习数据结构主要源于以下原因:

  在工作中我是用meteor在做项目,前后台都要写,服务端是用的node。之前有和同事做过一个邮箱功能,性能测试时并发量一高就发送失败。我认为处理并发量的问题应该需要数据结构与算法和设计模式这三点来优化。这是往大了说,细说就是工作中,功能每次都是加班超快赶,在多人合作下,如果代码结构与逻辑混乱,后期维护困难,功能不好扩展。由于我们组都是前端人员接下这个项目,对于数据库的设计经验缺乏,才一再出现性能问题,所以我认为学习数据结构与算法尤为重要。本人也是正在学习中,有问题欢迎大家指正。

  第一篇笔记先说说数据结构的基础:

  一·术语:

    1.数据:描述客观事物的符号,是计算机中可以操作的对象,能被计算机识别,并输入给计算机处理的符号集号。个人理解就好像变量一样。 

    2.数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。比如人类的数据元素是人。重点在于整体

    3.数据项:一个数据元素可以由若干个数据项组成,重点在于单个,是不可分割的最小单位。比如:一个person集合(数据元素)由'name','age'(数据项)来组成。

    4.数据结构:不同数据元素之间不是独立的,相互之间存在一种或多种特定关系的数据元素的集合。 

  二.数据的逻辑结构与物理结构:

    1.逻辑结构分为集合结构,线性结构,树形结构,图形结构

    (1)集合结构:数据元素除了同属一个集合外,没有其他关系,元素之间是'平等'关系。

集合结构示例图

    (2)线性结构:线性结构中的元素存在一对一的关系

线性结构示例图

    (3) 树形结构:树形结构中的数据存在一对多的层次关系,我们常用的二叉树结构就是树形结构中的一种

树形结构示例图

    (4)图形结构:图形结构的数据元素是多对多的关系

图形结构示例图

    注:一般在设计一个数据结构时,我们习惯将数据元素看做一个结点,用圆表示。元素之间的逻辑关系用连线表示,如果有方向的,可以用带箭头的连线表示。

     2.物理结构:是指数据的逻辑结构在计算机中的存储形式。这里主要指内存,像硬盘,软盘主要用文件结结来描述。

    (1)顺序存储:把数据元素存在地址连续的存储单元里

 顺序存储结构示例图

    (2)链式存储:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据在哪没关系,只要指针存放相应的地址知道下一个就到你了就行。

链式存储结构示例图

  三.抽象数据类型

    1.数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。比如在javascript中有number,string,boolean,null,undefined,object

    2.抽象数据类型:是指一个数学模型及定义在该模型上的一组操作。比如在数学的坐标轴中,有(x,y)也有(x,y,z),那么我们可以定义一个轴象数据类型point。

  总结:本篇主要介绍数据结构中的一些术语,虽然都是些概念,不是很好理解,但在之后的学习中结合一些练习与应用,会帮助我们理解。下一篇将介绍一下算法的基础知识,数据结构的学习离不开算法。两者相结合才能体现彼此的优点,发挥正真的作用。我的学习主要参考《大话数据结构》《算法》《数据结构》,大家可以去了解。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员叨叨叨

6.2 逻辑操作符(Logical Operators)

Cg语言中有3种逻辑操作符(也被称为boolean Operators),如表 2 所示,逻辑操作符运算后的返回类型均为bool类型。

893
来自专栏Eugene's Blog

一文总结学习 Python的14 张思维导图分类目录文章标签友情链接联系我们

1214
来自专栏用户2442861的专栏

百度 阿里 华为 腾讯 谷歌面试笔试题及解析

点评:其余题目请参见:http://blog.csdn.net/doc_sgl/article/details/11695671。 2、一个有10亿条记录...

4023
来自专栏阿凯的Excel

或关系求均值(函数虐心版)

最近醉心于Python的学习和分享,好久没有分享Excel相关的文章了。 熟悉我文章的朋友,都知道我特喜欢分享数组函数,也特喜欢分享那种很长的函数。 前几天有朋...

3696
来自专栏大数据挖掘DT机器学习

【手把手教你做项目】自然语言处理:单词抽取/统计

作者 白宁超 成都信息工程大学硕士。 近期关注数据分析统计学、机器学习。 原文:http://www.cnblogs.com/baiboy/p/zryy1.h...

31713
来自专栏数据结构与算法

2017.10.23解题报告

预计分数:100+60+0=160 实际分数:100+80+0=180 T1 题目描述 现在有一个字符串,每个字母出现的次数均为偶数。接下来我们把第一次出现的字...

3175
来自专栏互联网开发者交流社区

SQL基础日期函数

1355
来自专栏大数据挖掘DT机器学习

【手把手教你做项目】自然语言处理:单词抽取/统计

作者 白宁超 成都信息工程大学硕士。 近期关注数据分析统计学、机器学习。 原文:http://www.cnblogs.com/baiboy/p/zryy1.ht...

3065
来自专栏数据结构与算法

洛谷P4316 绿豆蛙的归宿(期望)

给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出发能够到达所有的点,所有的点也都能够到达终点。绿豆蛙从起点出发,走向终点。 到达每一个顶点...

884
来自专栏有趣的Python

c++实战-(一)-走出迷宫

走出迷宫 走出规则: 左手规则 & 右手规则 原则:保证手始终触墙 结果:走出迷宫 情况1:有入有出。(特殊情况,出入口是一个) ? 架构描述: 迷宫类(Maz...

2914

扫码关注云+社区