懂技术是产品经理的加分项,这是毋庸置疑的。为了经营好这一个加分项,产品经理要为自己的技术能力定制一个修行计划。
懂技术是产品经理的加分项,这是毋庸置疑的。为了经营好这一个加分项,产品经理要为自己的技术能力定制一个修行计划。很多同学在产品入门的时候都会考虑到一个问题——产品经理需要懂技术吗?这个问题也许没有准确的答案,但是一个懂技术的产品经理确实有很明显的优势。
一方面产品经理在日常工作中,接触到最多的一类人,就是程序员,懂技术能减少与技术同学的沟通成本;另一方面,许多成功的产品经理都是技术出身,因为可以从更全面的维度去规划产品的未来。
本文将与大家分享数据类型相关的基础知识,希望可以共同学习,共同进步。
一、基础名词理解
数据:对客观事物的符号表示,在计算机科学中指所有能输入到计算机中,并被计算机程序处理的符号的总称。
数据项:是组成数据对象的不可分割的最小单位。
数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行处理。数据元素可以由数据项组成。
数据对象:性质相同的数据元素的集合,是一个数据的一个子集。
为了更清晰地对以上几个名词进行理解,举一个简单的例子:
以学生为例,这里引进几个名词,某班级,学生张三,学生张三的学号与姓名。在这个例子中,学生张三就是一个数据元素,它由张三的学号与姓名组成。那么学号、姓名就是数据项,张三和某班级的其他学生性质相同,并且共同组成了这个某班级。那么某班级就是学生数据元素的集合,即一个数据对象,可以表示为:班级={学生1,学生2,学生3........}。
了解了基本的数据概念,再来看看数据结构与数据类型:
数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
存储结构:数据结构在计算机中的表示(映射),即数据的物理结构。
数据类型:一个值的集合和定义在这个值集上的一组操作的总称。
抽象数据类型:ADT,一个数学模型以及定义在该模型上的一组操作。
还是以学生为例,再引进一个新的名词——学生名单表。
学生名单表就属于数据结构的一种——表结构。学生信息中可能存在年龄,以数字来进行描述,那么年龄就可能是整型这种数据类型的一个字段。
总结来说,数据结构定义了一组按照某些关系结合在一起的数组元素,数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。
以下为基本的数据类型整理:
二、基础数据结构类型整理
1. 线性表
定义:线性表是最常用且是最简单的一种数据结构。形如:a1、a2、a3…an,这样含有有限的数据序列,我们就称之为线性表。
相关概念:
线性链表:用一组任意的存储单元存储线性表的数据元素。
数据域:存储数据元素的域。
指针域:存储直接后继存储位置的域。
举例理解:一年12个月,就可表示为线性表的形式,因为每个月只有一个直接前驱和一个直接后继。线性表的顺序结构表示的时候,它的最大的缺点就是在插入和删除的时候,需要移动大量的元素。
2. 栈和队列
定义:
栈是指限定仅在表尾进行插入或者删除操作的线性表,表尾端称为栈顶,表头端称为栈底。
队列是指只允许在一端进入插入,另一端进行删除的线性表,插入端称为队尾,删除端称为队头。
区别表现为:栈为“后进先出”,队列为“先进先出”。
举例理解:栈和队列都是我们在进行产品逻辑设计时经常使用到,比如:我们进行一个有层级顺序的页面设计时,设定顺序为:页面1->页面2->页面3,当用户在页面3 时,点击返回,必须先返回页面2,才能继续返回到页面1,这就是栈的设计设计思维。
3. 串
定义:串是零个或多个字符组成的有限序列。一般记S=‘a1a2....an ’其中,S是串名,单引号括起的字符序列是串值;ai(1〈=i〈=n)可以是字母,数字或其它字符。
相关概念:
串的长度:串中所包含的字符个数为该串的长度。
空串:长度为零的串称为空串,它不包含任何字符。
举例理解:串多用于字段的联结或者分解。举例来说:常见的综艺名称”综艺名+更新时间“,就是通过将综艺名字段与综艺更新时间字段这两个串进行联结,最终展现给用户一个合并形成的综艺名称。
4 . 树
定义:树形结构是非线性的数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。
相关概念:
度:结点拥有的子树的数量称为树的度。
二叉树:每个结点至多有2个子树且子树有左右之分,次序不能颠倒,这样的树称为二叉树。
举例理解:比较常见的微信公众号的顶部菜单和视频网站的分类导航,就采用了树的设计思维。
三、总结
对于非技术型产品经理而言,不需要深入了解每个数据结构的函数、方法,但是了解并理解数据结构的基本概念与特点,不但可以在产品逻辑、业务流程设计时,借鉴数据结构相关的设计思维,而且可以减少和技术同学沟通的成本,更好地相互理解。