数据驱动型的设计03之Queue队列

本系列从数据结构相关的计算机知识出发,从数据的角度提出一些数据驱动的设计思维模式。

第01期

总体介绍数据结构与设计的关系,用数据结构的方式来思考设计,并通过几个案例介绍一些大的思路。

第02期

介绍数据结构中的链表结构,并探讨设计中可能的链表数据。

第03期

介绍数据结构中的队列结构,及在智能设计中的应用。

Queue

队列

队列是一种先进先出(FIFO:first in first out)的数据结构。它只允许在表的前端进行删除操作,而在表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。这期比较简单,基于上期实现的LinkedList结构,来实现Queue,然后为Queue添加插入数据及删除数据的方法:

enqueue

dequeue

删除操作相当于移除LinkedList的head节点,因为Queue只允许在表的前端进行删除操作。那么,我们就拓展下上一期实现的LinkedList类的方法:

LinkedList.prototype.deleteHead=function() {

if (!this.head) {
         return null;    }    
         
         
   const deletedHead = this.head;
   
   
    if (this.head.next) {
     
     this.head = this.head.next;
         } else {
    
     this.head = null;
     this.tail = null;
         }    
     
         return deletedHead;
           }

拓展完LinkedList后,我们实现下enqueue和dequeue,代码如下:

class LinkedList(){...};

class Queue {  constructor() {

this.linkedList = new LinkedList();
     }  enqueue(value) {
   
   this.linkedList.append(value);
     }  dequeue() {
   
   const removedHead = this.linkedList.deleteHead();
   
   return removedHead ? removedHead.value : null;
     }}

下面从其他领域看先进先出的概念:

先进先出

FIFO:first in first out

物流控制有一个存货模式的概念,最常用的是先进先出模式。其实还包括后进先出、随机出库这2种。

物流控制先进先出意思是:生产日期靠前的货物陈列在前面,确保生产日期靠前的商品先销售。

优点

确保所有商品在正常的保质期内销售,控制损耗。而对于没有保质期的商品,先进先出可以永远保持陈列商品的新鲜。

缺点

特别对于存货进出量频繁的企业比较繁琐。而且当物价上涨时,会高估企业当期利润和库存存货价值;反之,会低估企业存货价值和当期利润。

回到我们设计领域,举一个人工智能+平面设计的案例:

通过一个按钮,机器按照某种逻辑(比如用户喜好的色彩、或跟文案最匹配的图片)更换图片素材,就是一个队列,可以用队列的数据结构来表示。

设计上,还有没有其他队列的例子?例如,建筑设计里的人流动线、游戏里的场景切换、UI界面的动效等等。

欢迎留言讨论~

待续。

-------------------------------

推荐:

AI 时代的人机协同创作

AI + Blockchain = ?

AI设计系统“设计之神”

智能产品架构师活动-mixlab-7月活动圆满落幕

ML37-Baoling【mixlab共建者的故事】

继续聊技术思维与设计思维的mix

名片怎么玩?mixlab社区名片来一个

-------------------------------

mixlab社区介绍:

中文:无界社区

英文:mixlab

定位:去中心化、非盈利、全球化

价值观:跨界 开放 互助 学习 创新

愿景:让每个人无限可能

目前,参与mixlab社区共建的人群主要来源于GoogleBrain、微软、华为、阿里鲁班、腾讯、旷视、三角兽、物灵科技、众安保险、美团、360等,还有高校背景人员,包括MIT、CMU、UoM、清华、上交大、同济等等,汇集了机器学习、自然语言处理、物联网、区块链、前端、后端、产品经理、UI设计师、建筑设计师、服装设计师、珠宝设计师、高校教师、CEO、投资人等。

我们没有年龄、经验、背景、地域的限制,不以盈利为目的,帮助每个人用最短的时间把新知识内化为个人的技能,让每个人都能产生无限可能。

mixlab期待您的加入!

赞赏的方式可以是点广告~

(0)

相关推荐