Questions tagged «data-structures»

有关在软件应用程序中有效存储和表示数据的问题。

4
分析内存使用情况:Java与C ++可以忽略不计?
用Java编写的整数对象的内存使用情况与用C ++编写的整数对象的内存使用情况如何比较\对比?差异可忽略不计吗?没有不同?有很大的不同吗?我猜是一样的,因为int是int而不管语言(?) 我之所以这样问,是因为我正在阅读了解何时知道程序的内存需求将阻止程序员解决给定问题的重要性。 让我着迷的是创建单个Java对象所需的内存量。以一个整数对象为例。如果我错了,请纠正我,但是Java整数对象需要24个字节的内存: 4个字节的int实例变量 16字节的开销(引用对象的类,垃圾收集信息和同步信息) 4字节的填充 再举一个例子,Java数组(作为对象实现)需要48个字节以上: 标头信息的24个字节 16个字节的对象开销 4个字节的长度 4个字节用于填充 加上存储值所需的内存 与使用C ++编写的相同代码相比,这些内存使用情况如何? 我过去对编写的C ++和Java程序的内存使用情况一无所知,但是现在,我开始学习算法,对计算机的资源有了更大的了解。

13
队列的一些简单好例子是什么?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我正在教CS2(Java and data structures),在教队列时要使用好的示例方面有些困难。我使用它们的两个主要应用程序是multithreaded消息传递(但是MT编程不在本课程的范围之内),并且BFS-style algorithms(并且我将在本学期的晚些时候再介绍图形)。 我也想避免人为的例子。我想到的大多数事情,如果实际上是要以单线程方式解决它们,我只会使用列表而不是队列。我倾向于仅在处理和发现被交错(例如,搜索)时或在其他特殊情况下使用队列,例如长度受限的缓冲区(例如,维护最后N个项目)。在实际的范围内,我正在尝试教我的学生好的方法,以实际的方式实际执行程序,而不仅仅是展示功能的玩具。 有什么好的,简单的算法建议或队列应用建议可以用作示例,但至少需要其他先验知识吗?

7
面向对象需要哪些功能?
我只是想知道,语言或库必须提供什么功能才能将其定义为“面向对象”。是否可以在具有适当功能的任何通用编程语言中或多或少地实现对象定向?还是只能通过专门宣传它们支持面向对象编程的语言才能实现? 例如,看下面的C代码: SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE); SDL_FreeSurface( screen ); 或此处讨论的代码。 现在,上面的代码不使用继承,运行时多态性(?),虚函数等。但是对我来说,它似乎是非常面向对象的。 面向对象是否只是在编写基于不需要对象或编程语言或库提供的特殊模式或功能的可创建和可破坏的数据结构(例如对象,类,结构等)的代码?

2
这个学习领域是什么?
假设我正在设计一个鞋经销商的网站。他们有不同的品牌和种类的鞋子,当然,他们想要一个很好的搜索功能。 因此,鞋子可以具有不同的属性。它们可以具有专有属性,例如大小,宽度,性别和儿童/成人。或者它们可以具有非排他性,例如颜色(鞋子上可能有两种或更多种颜色)。有些类别可能与某些其他类别发生冲突,例如“礼服”和“休闲”(鞋子既不能是正装鞋又不能是运动鞋(在此示例中,忽略“舒适”的正装鞋)),而它们尚不冲突。其他,例如“礼服”和“靴子”(鞋子可以是正装靴子)。专有属性易于建模,但是潜在冲突的属性又如何呢?这对于集合论会是个问题吗? 通常将这种应用计算机科学称为什么?数据建模还是更具体的东西?我想了解更抽象的哲学原理,例如排他性和非排他性,并了解如何在代码,数据结构和数据库模式中实现这些原理。 我正在谈论的一个很好的例子是修改后的预排序树遍历算法。这是制作嵌套层次分类系统的好方法。因此,您遇到了一个现实的组织问题:类别,然后有了一个可以对该问题进行建模的数据结构。 我在哪里可以了解有关此类物品的更多信息?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.