产品经理学技术之数据结构
今天给产品经理普及一下数据结构的相关知识,数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,从字面意思来看,就是数据的结构,所谓的结构就是组成整体各部分的搭配和安排,所以数据结构就是数据存储的结构。
数组:
数组的本质是储存、管理、操作一组变量,我们看下列的联系人表格:
$li_xm='张三';联系人中每一行都是一个人的信息,每个信息还是不同的类型,如果在程序中需要处理这些联系人的信息,就需要这样定义(以php举例):
$li_xm='张三';
$li_xb='男';
$li_nl=18;
$li_gs='A';
这只是张三一个人的信息,如果有成千上万条像张三这样的信息呢?
这个时候就需要数组出马了,可以用数组来储存张三的信息。如下所示:
$xiaoli=arry('张三','男',18,'A')
上面的代码就是根据张三信息创建的数组。
所以数据就是一些列数据的集合,【张三、男、18、A】这些数据在数组中被称之为元素。
上面我们知道怎么用一组元素来储存张三的信息,可是怎么从数组中取出这些元素呢?其实数组是使用索引来对应每个元素的,如下图:
在产品设计中,尤其是列表型的产品设计,类似商品列表,就是把所有需要展示的数据储存在数组中,然后通过接口展示在列表界面。默认情况下索引是不用来定义的,系统已经帮我们做好了,默认数组使用从0开始的数字依次递增来对应每个元素,这种使用数字作为索引的数组就被成为索引数组。
栈:
栈是指限定仅在表尾进行插入或者删除操作的线性表,表尾端称为栈顶,表头端称为栈底。
如下图:a1在栈底,an在栈顶,你可以把他理解为一个底部封口,顶部开放的一个容器,数据元素从开口处进入叫做入栈,从开口处取出叫做出栈,所以要想把底部的元素取出,就需要把其他的元素先移除出去。
栈在我们的产品设计中经常用到,比如我们在进行一个有层级顺序的页面设计时,设定的顺序从A>B>C,那返回的时候也是先从C页面返回到B页面,然后再到A页面。
队列:
队列和栈一样,都是受到一定规则限制的数据结构。队列是一种特殊的线性表,只允许在表的头部(front处)进行删除操作(也就是出队),在表的尾部(rear处)进行插入操作操作(也就是入队),这种数据结构就叫做队列。进行插入操作的一端称为队尾,进行删除操作的一端称为队尾。
比如在产品设计中,注册页面需要填写的内容比较多,就分步骤让用户填写,分一步、两步、三步,这个时候就需要用户先做好第一步,然后才能操作接下里的二三步。
树:
树是一种分层数据的抽象模型。现实生活中最常见的树的例子就是是公司的组织架构图:
树上的一个元素往往叫做一个节点,每个树状结构都有一个“根”节点,也就是树根,从树根出发可以延申出“枝干节点”,树干结构末端的节点我们称之为“叶子节点”。
树状结构一般应用在产品的结构设计、权限系统设计和用户层级设计等设计场景,比如微信下面的四个切换tab,就是根节点控制的4个子节点。
欢迎小伙伴加我的私人微信:yw5201a1交流。
点击“阅读原文”
查看更多干货