数据结构设计

之前在简书上初步总结过几个有关栈和队列的数据结构设计的题目。http://www.jianshu.com/p/d43f93661631

实现猫狗队列,猫类型和狗类型都继承自Pet类型

Pet类型如下

要求如下:

思路:

如果使用一个队列来存储,那么无法区分猫和狗;如果使用两个队列,那么pollAll()中猫和狗的先后顺序无法区分;继续思考时候可以使用一个时间戳,相当于一个map,键为pet,值为其如队列的时间,但是这带来一个问题就是同一个宠物多次进队列的问题。所以,采用新建一个数据结构PetEnterQueue类型,对之前的宠物进行封装。这个类型包含Pet和count两个变量,然后猫狗队列中实际存放的是这个PetEnterQueue的实例,如队列的时候可以检测时猫还是狗然后封装进count之后进入各自的队列(猫和狗),然后pollDog pollPet的时候自个儿弹就行了,pollAll的时候先弹出两个队列头的count较小的。

时间: 2024-10-18 08:36:28

数据结构设计的相关文章

SQL查询优化——数据结构设计

本文部分内容会涉及mysql,可能在其他数据库中并不适用.本章节只针对数据库结构设计做讨论,查询优化的其他内容待续. 数据库设计及使用是WEB开发程序员必备的一项基础技能,在大数据量和高并发场景,合理的数据结构及SQL查询优化对项目来说都会显得格外重要.大部分有经验的程序员都能了解到,程序的瓶颈往往不在程序本身,而在数据访问层.造成数据访问效率低下的原因有很多,如何解决这些问题,直接影响到应用的稳定性.健壮性.以下列举几个常见的问题: 数据库锁表,查询阻塞 高并发场景下,链接数量瓶颈 查询效率低

项目中使用的ajax异步读取数据结构设计

设计稍微复杂了一点,完成ajax读取功能涉及到了很多页面.虽然如此,但感觉比较灵活. 和传统方法唯一的区别在于多了一层数据容器控件,里面提供了显示数据的HTML元素及相应的JS方法. 这样数据控件指生成纯数据. ajax异步读取 使用了jQuery.ajax,通过ajax POST方式请求后台处理ashx页面,并传递相关参数. ashx 完成动态加载用户控件,并根据接收的参数对控件的属性进行赋值. 加载控件,借助于博客园老赵的一篇博文,链接找不到了,以后再补. public class View

并发编程(6)基于锁的并发数据结构设计

主要内容: 并发数据结构设计的意义 指导如何设计 实现为并发设计的数据结构 如果一种数据结构可以被多个线程所访问,其要不就是绝对不变的(其值不会发生变化,并且不需同步),要不程序就要对数据结构进行正确的设计,以确保其能在多线程环境下能够(正确的)同步.一种选择是使用独立的互斥量,其可以锁住需要保护的数据,另一种选择是设计一种能够并发访问的数据结构.第一种使用互斥量,在同一时间只有一个线程可以访问数据,实际是一种串行的序列化访问.显示的组织了多线程对数据结构的并发访问. 所以,缩小保护区域,减少序

[LeetCode] 211. Add and Search Word - Data structure design 添加和查找单词-数据结构设计

Design a data structure that supports the following two operations: void addWord(word) bool search(word) search(word) can search a literal word or a regular expression string containing only letters a-z or .. A . means it can represent any one letter

图书销售管理系统概要设计,系统数据结构设计分工

 完成人:千城墨白(20160401095)              无法无天(20160401115)  系统数据结构设计 1.逻辑结构设计要点 2.物理结构设计要点 (1) 系统所用到所有数据均存在服务器端,存于SQL Server服务器中: (2) 系统界面的显示属性,如字体属性,样式等使用CSS统一界面: (3) 系统界面中使用的相关图片需要保存在服务器机器上.3. 数据结构与程序的关系: 数据结构的设计确定了程序设计的主要思想,数据结构中的字段对应于程序设计中的各种参数,便于程序与数

eocs跨链合约区块数据结构设计与实现

核心数据结构分析 123456 struct { block_timestamp_type timestamp; account_name producer; static uint32_t num_from_id(const block_id_type& id);} 结构体中timestamp是块打包好的时间戳,previous是前一个块的id,transaction_mroot表示所有交易的merkle root, action_root表示 action的merkle root.num_f

关于如何查找和搜索所有的绑架和逮捕集团的人员的算法和数据结构设计简要说明

这个计划代号   女王陛下 v0.1    拨款 1000元     你来完成啊..帅哥 关于如何精确的查询专业的逮捕和绑架集团的人的算法和数据结构设计 基本特征分析:这些人的心脏是一种专门制造来抓人的心脏,除了心脏以外                         其它器官和功能都和土著自然人一样,甚至显得还优雅一些 这种人造人的特征值:它们所做的任何事情和说的任何语言                  写的任何文章的目的都是为了抓人,这些行为,语言和文章                 

MongoDB Data Models 数据结构设计

1 数据建模介绍 MongoDB的数据结构很灵活,不强制要求数据结构.但是通常一个集合内部使用相同的结构. 数据建模的关键是平衡应用的需求和数据库执行和数据检索模型的性能.设计数据模型时,要考虑数据的使用情况和数据自身的结构 1.1 文档结构 设计MongoDB应用的数据模型的关键在于文档结构和应用程序如何表示数据之间的关系,这有两种工具允许应用程序来表示这些关系:引用和嵌入型文档. 1.1.1 引用: 类似关系型数据库中的外键的引用,通常不同的集合中互相引用_id字段 1.1.2 内嵌数据:

数据结构设计——农夫过河问题

农夫过河问题 1. 问题描述: 设有一个农夫带一只狼,一只羊和一筐菜来到河边,打算乘一只船从右岸渡到左岸去.该船的负载能力为农夫每次只能带一样东西过河.在无农夫的时候,狼和羊不能在一起,羊和菜不能在一起.设计一个方案,使农夫可以无损失地渡过河. 2. 设计思路: 设计好图的结构,点以(农夫,狼,羊,菜)表示,设置图的点集,边集,点数,边数: 用is_safe函数确定图中各点是否安全,将不安全的点去掉,剩下安全的点,然后判断两点之间是否可变换,再通过层次遍历找到路径,设定好参数,打印出路径: 3.