party_bid_core介绍:

之前的party_bid练习中,没有规定使用什么数据结构存储项目中使用的数据.新的项目party_bid_core中,要求使用三种不同的数据结构在测试案例的基础上实现party_bid的数据存储.

data_structure_1:

第一种数据结构为:

activities = [  {  name: "",  sign_ups: [],  bids: []  },

在一个activities类中分别有name(活动名称),sign_up(活动报名信息),bids(竞价报名信息)三个属性.每一个活动的报名和竞价信息都存储在相应的类的sign_up和bids中,报名信息sign_up中又有一个类保存报名这的电话和名字,bids中则有竞价的名字name和相应的竞价报名信息bidding.这种数据的优点就是结构很清晰,易懂.缺点是嵌套太多,修改数据需要一层一层的遍历.比较麻烦.如

{  name: "first activity",  sign_ups: [  {  name: "仝键",  phone: "13600000000"  },  {  name: "于硕",  phone: "15600000000"  }  ],  bids: [  {  name: "竞价1",  biddings: [  {  name: "仝键",  phone: "13600000000",  price: "12"  },  {  name: "于硕",  phone: "15600000000",  price: "10"  }  ]  }  

data_structure_2:

第二种数据结构为:

activities = {  "0": {  name: "",  sign_ups: [],  bids: [],  biddings: {}  }

"0"代表活动的id,这种数据结构中是通过活动的id来查找的,与第一种数据结构的差别为将竞价的详细信息biddings提出来,通过bids中的键在bidding中查找.添加和读取竞价信息更加方便.如:

activities = {  "0": {  name: "first activity",  sign_ups: [  {  name: "仝键",  phone: "13600000000"  },  {  name: "于硕",  phone: "15600000000"  }  ],  bids: ["竞价1", "竞价2"],  biddings: {  "竞价1": [  {  phone: "13600000000",  price: "12"  },  {  phone: "15600000000",  price: "10"  }  ],  "竞价2": [  {  phone: "13600000000",  price: "10"  },  {  phone: "15600000000",  price: "12"  },  ]  }  ;

data_structure_3:

第三中数据结构为:

activities = [  {  id: "0",  name: "first activity"  }];
sign_ups = [  {  name: "仝键",  phone: "13600000000",  activity_id: "0"  }
]
bids = [  {  name: "竞价1",  activity_name: "0",  biddings: [  {  phone: "13600000000",  price: "9"  } ]  }
]; 

这种数据结构将活动名称(activities),报名信息(sign_ups),竞价信息(bids)分开存储.虽然更利于操作,独立性比较强,但结构不是前两种数据结构那样清晰。

总结:

三种数据结构各有优缺点,可以根据需要选择合适的数据结构。这个练习中,我根据要求通过了测试,打破了以前比较单一的数据存储思维方式,特别是第三种数据结构,一种横向思维。收获不少。

三种数据结构总结(party_bid_core)相关推荐

  1. Python三种数据结构

    Python 为我们提供了三种常用数据结构,列表(Lists),字典(Dictionary),元组(Tuple).为何要了解三种数据结构,这事的意义就不必多说了,让我们开始了解这三种最重要的数据结构吧 ...

  2. Java实现单链表、栈、队列三种数据结构

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:远航 cnblogs.com/yang-guang- ...

  3. java 栈_Java实现单链表、栈、队列三种数据结构

    作者:远航 cnblogs.com/yang-guang-zhang/p/13884023.html 一.单链表 1.在我们数据结构中,单链表非常重要.它里面的数据元素是以结点为单位,每个结点是由数据 ...

  4. 汇总python三种数据结构list,set,dict的常见操作

    文章目录 前言 list set dict 前言 这3个东西太常用,必须熟练掌握. list 功能 操作 去重 set(a) 排序 a.sort() 或者a=sorted(a) 插入 a.insert ...

  5. python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)

    树的实现采用queue的形式: 树的三种遍历方式(广度优先白能力法):先序遍历(根左右),中序遍历(左根右)以及后序遍历(左右根) ######################P6.4 数据结构### ...

  6. 数据结构:关于重建二叉树的三种思路

    前言: 前几天在温习<编程之美>这本书的时候,看到了二叉树的重建.正好,也想复习一下数据结构的知识,就来写了一个小Demo.居然有新发现(本文中的第三种方式). 我们在学习数据结构的时候, ...

  7. Redis 五种数据结构以及三种高级数据结构解析以及使用

    一.前言 在 Redis 最重要最基础就属 它丰富的数据结构了,Redis 之所以能脱颖而出很大原因是他数据结构丰富,可以支持多种场景.并且 Redis 的数据结构实现以及应用场景在面试中是相当常见的 ...

  8. 二叉树----数据结构:二叉树的三种遍历及习题

    二叉树----数据结构:二叉树的三种遍历,利用递归算法. 关于二叉树的遍历,应用非常广泛,不单单是访问打印结点,还可以进行一系列的操作,如赋值.删除.查找.求二叉树的深度等等. 有递归和非递归两种算法 ...

  9. Redis系列三、redis的五种数据结构和相关指令之Hash

    本节中将介绍Redis支持的主要数据结构,以及相关的常用Redis命令.redis是一种基于键值对(key-value)的内存数据库,redis数据结构可以分为string.hash.list.set ...

  10. Redis五种基本以及三种高级数据结构

    记得点赞+关注呦. 更多更好的文章,请关注公众号[蘑菇睡不着],里面有知识点干货以及刷题相关的分享. 前言 在 Redis 最重要最基础就属 它丰富的数据结构了,Redis 之所以能脱颖而出很大原因是 ...

最新文章

  1. Python数组操作2
  2. [BZOJ3992]序列统计
  3. 基于JindoFS+OSS构建高效数据湖
  4. 不得不看之跳槽加薪利器:2019需求最旺盛的十大IT技能
  5. java 类 加载 初始化_java类的加载与初始化
  6. 正版python怎么下载_怎么下载官网python并安装
  7. 16.第二十二章.信息安全管理
  8. 50k热敏电阻温度对照表c语言,50K热敏电阻温度表
  9. 什么是devicenet跟以太网啥区别
  10. 赵小楼《天道》《遥远的救世主》深度解析(137) 职业的责任担当,活的认真
  11. OpenCV开发笔记(三十四):红胖子带你小白式编译Qt+openCV3.4.1+opencv_contrib(全网最简单最强,可读性最高,没有之一)
  12. 2022.3月份工作记录【日记】
  13. python爬取B站动态的评论总数(不含用户评论内容详情)
  14. Things3 3.13.13 一款优秀的GTD任务管理工具
  15. 服装行业如何用手持PDA盘点?
  16. 浏览器上查看微信公众号的所有历史文章
  17. 两个电脑主机共用一个显示器
  18. 机械专业就业与计算机专业待遇,机械类专业毕业五年“薪资”排名,车辆工程“逆袭”!...
  19. java中的IO流(字节流和字符流)----读写文件数据
  20. servlet批量上传图片

热门文章

  1. C语言实现创建游戏角色(包含文件写入)
  2. 基于Lae的ffmpeg播放器
  3. python-day11函数的作用
  4. 计算机专业外出交流方案,公开学院计算机系外出考察方案.doc
  5. 输入一字符串,内有数字和非数字字符,例如:A123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……统计有
  6. linux图片裁剪软件安卓版,照片裁剪软件下载-照片裁剪 安卓版v2.2-PC6安卓网
  7. 计算机访学面试,访学申请Skype面试经历
  8. linux安装红警教程,Deepin v20下玩红警三
  9. 【Unity】U3D ARPG游戏制作实例(二)人物基本动作切换
  10. C语言中文网的资源的使用——链接索引