前景提要
c#内置的Stack、Queue、Dictionary为什么都是用数组实现而非使用链表?
0 [待解决问题] c#内置的Stack、Queue、Dictionary为什么都是用数组实现而非使用链表? 数据结构 Marble | 菜鸟二级 | 园豆: 201
提问于:2019-04-30 10:12 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(4) 0 我个人觉得数组比较简单。我刚看了下源码,很多操作都需要新建数组,感觉就是空间换时间吧。另外像Queue这种,感觉数组会比链表方便很多,链表查询一头方便,查询另一头要遍历所有元素,而数组可以随机读取 会长 | 园豆:8398 (大侠五级) | 2019-04-30 10:24 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 C#很少会用到指针吧 王站住 | 园豆:120 (初学一级) | 2019-04-30 11:15 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 猜测是为了性能: If Count is less than the capacity of the stack, Push is an O(1) operation. If the capacity needs to be increased to accommodate the new element, Push becomes an O(n) operation, where n is Count. Pop is an O(1) operation.
来源: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.stack-1?redirectedfrom=MSDN&view=netframework-4.8#remarks 不如隐茶去 | 园豆:549 (小虾三级) | 2019-04-30 13:24 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 数组可以不按顺序查找,比如想获取数组中第5个数据,则 var a=b[4];,链表是按顺序查找的不能直接获取,比如想获取第5个数据,需要从第一个找起,因为每个元素的位置信息在上一个元素中,印象中好像是这样,不对请见谅 jqw2009 | 园豆:1946 (小虾三级) | 2019-04-30 17:21 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。