OurDotNetLogo

程序员,.NET平台,.NET学习,CSharp学习,OurDotNet,程序员,.NET平台,.NET学习,CSharp学习,OurDotNet

产品经理的技术修行笔记——数据结构篇
作者:人人都是产品经理  |   2018/4/7 16:09:27   |  阅读:804

产品经理的技术修行笔记——数据结构篇

很多同学在产品入门的时候都会考虑到一个问题——产品经理需要懂技术吗?这个问题也许没有准确的答案,但是一个懂技术的产品经理确实有很明显的优势。

  • 一方面产品经理在日常工作中,接触到最多的一类人,就是程序员,懂技术能减少与技术同学的沟通成本;
  • 另一方面,许多成功的产品经理都是技术出身,因为可以从更全面的维度去规划产品的未来。

所以懂技术是产品经理的加分项,这是毋庸置疑的。为了经营好这一个加分项,产品经理要为自己的技术能力定制一个修行计划。

本文将与大家分享数据类型相关的基础知识,希望可以共同学习,共同进步。

一、基础名词理解

  • 数据:对客观事物的符号表示,在计算机科学中指所有能输入到计算机中,并被计算机程序处理的符号的总称。
  • 数据项:是组成数据对象的不可分割的最小单位。
  • 数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行处理。数据元素可以由数据项组成。
  • 数据对象:性质相同的数据元素的集合,是一个数据的一个子集。

为了更清晰地对以上几个名词进行理解,举一个简单的例子:

以学生为例,这里引进几个名词,某班级,学生张三,学生张三的学号与姓名。在这个例子中,学生张三就是一个数据元素,它由张三的学号与姓名组成。那么学号、姓名就是数据项,张三和某班级的其他学生性质相同,并且共同组成了这个某班级。那么某班级就是学生数据元素的集合,即一个数据对象,可以表示为:班级={学生1,学生2,学生3……..}。

了解了基本的数据概念,再来看看数据结构与数据类型:

  • 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
  • 存储结构:数据结构在计算机中的表示(映射),即数据的物理结构。
  • 数据类型:一个值的集合和定义在这个值集上的一组操作的总称。
  • 抽象数据类型:ADT,一个数学模型以及定义在该模型上的一组操作。

还是以学生为例,再引进一个新的名词——学生名单表。

学生名单表就属于数据结构的一种——表结构。学生信息中可能存在年龄,以数字来进行描述,那么年龄就可能是整型这种数据类型的一个字段。

总结来说,数据结构定义了一组按照某些关系结合在一起的数组元素,数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。

以下为基本的数据类型整理:

产品经理的技术修行笔记——数据结构篇

二、基础数据结构类型整理

1. 线性表

产品经理的技术修行笔记——数据结构篇

定义:线性表是最常用且是最简单的一种数据结构。形如:a1、a2、a3…an,这样含有有限的数据序列,我们就称之为线性表。

相关概念

  1. 线性链表:用一组任意的存储单元存储线性表的数据元素。
  2. 数据域:存储数据元素的域。
  3. 指针域:存储直接后继存储位置的域。

举例理解:一年12个月,就可表示为线性表的形式,因为每个月只有一个直接前驱和一个直接后继。线性表的顺序结构表示的时候,它的最大的缺点就是在插入和删除的时候,需要移动大量的元素。

2. 栈和队列

产品经理的技术修行笔记——数据结构篇产品经理的技术修行笔记——数据结构篇

定义:

  • 栈是指限定仅在表尾进行插入或者删除操作的线性表,表尾端称为栈顶,表头端称为栈底。
  • 队列是指只允许在一端进入插入,另一端进行删除的线性表,插入端称为队尾,删除端称为队头。

区别表现为:栈为“后进先出”,队列为“先进先出”。

举例理解:栈和队列都是我们在进行产品逻辑设计时经常使用到,比如:我们进行一个有层级顺序的页面设计时,设定顺序为:页面1->页面2->页面3,当用户在页面3 时,点击返回,必须先返回页面2,才能继续返回到页面1,这就是栈的设计设计思维。

3. 串

定义:串是零个或多个字符组成的有限序列。一般记S=‘a1a2….an ’其中,S是串名,单引号括起的字符序列是串值;ai(1〈=i〈=n)可以是字母,数字或其它字符。

相关概念:

  1. 串的长度:串中所包含的字符个数为该串的长度。
  2. 空串:长度为零的串称为空串,它不包含任何字符。

举例理解:串多用于字段的联结或者分解。举例来说:常见的综艺名称”综艺名+更新时间“,就是通过将综艺名字段与综艺更新时间字段这两个串进行联结,最终展现给用户一个合并形成的综艺名称。

4 . 树

产品经理的技术修行笔记——数据结构篇

定义:树形结构是非线性的数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。

相关概念:

  1. 度:结点拥有的子树的数量称为树的度。
  2. 二叉树:每个结点至多有2个子树且子树有左右之分,次序不能颠倒,这样的树称为二叉树。

举例理解:比较常见的微信公众号的顶部菜单和视频网站的分类导航,就采用了树的设计思维。

三、总结

对于非技术型产品经理而言,不需要深入了解每个数据结构的函数、方法,但是了解并理解数据结构的基本概念与特点,不但可以在产品逻辑、业务流程设计时,借鉴数据结构相关的设计思维,而且可以减少和技术同学沟通的成本,更好地相互理解。

以上是本次的数据结构的学习笔记,可能会有一些不合理的地方,希望共同学习共同进步。


评论:

发表评论

最新评论:


圈内热点

  • 怎么轻松学习JavaScript

    js给初学者的印象总是那么的“杂而乱”,相信很多初学者都在找轻松学习js的途径。我试着总结自己学习多年js的经验,希望能给后来的学习者探索出一条“轻松学习js之路”。
  • 我心目中的ASP.NET核心对象

    在我的眼里,Asp.net有三大核心对象:HttpContext, HttpRequest, HttpResponse。除此之外,还有二个对象虽然称不上核心,但仍然比较重要:HttpRuntime,HttpServerUtility
  • IIS内部运行机制

    这篇文章的资料收集整理自各种微软公开的文档,通过比较 IIS5、IIS6、IIS7 这三代 IIS 对请求的处理过程, 让我们熟悉 ASP.NET的底层机制并对请求(request)是怎么从Web服务器传送到ASP.NET运行时有所了解
  • 改善程序员生活质量的3+10习惯

    2017年的一天,代码伴随着手指极具节奏感地输出在IDE上,突然某Chrome插件弹出一封邮件提示:“今天是我在ThoughtWorks的最后一天”。
  • 编程的一些伟大真理

    编程学习中的一些伟大真理,初级程序员都知道吗?
回到顶部