您现在的位置:首页 --> 查看专题: List
List是工程师的基本功,这里并不描述list增删这些细节的内容,仅仅根据我的理解写一下工程中List库的设计和实践考量。看过几个不同的list库的实现,基本上涉及到如下的设计考量: 1.List数据结构上的差异有没有头结点,是否循环,是否双向。这样就有多种组合,不罗嗦。 2.list的读写的保护。 3.List直接指针遍历还是仿照STL的Iterator方式遍历。 4.List同实际用户数据是采取一体式还是干湿分离式。 5.系统对于数据结构和算法的影响 1.从数据结构上将,Linux Kernel之中的List是双向无头节点链表。空链表如下: 非空链表如下: 我觉得维护头结点的理由之一就是可以存放list size,而无需用户在应用部分进行维护。如果没有list size,用户需要在List删减的结束的时候维护list size,如果不愿意如此麻烦,只能悲催的在需要读取
如果有多个进程同时对一个mdb(其它的没看,不敢随便乱说)执行list操作,结果会怎样; 或许你会显得当然地认为相互没有太大关系,至少我开始时这么认为的,但是在看源码的时候,发现有些不太对劲儿,我们先看一下源码.....
[ 共3篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [12] 逃出你的肖申克(五):看不见的牢笼(上)
- [9] [Perl]Moose::Manual::T
- [9] linux 简单架设防火墙路由器
- [9] 关于身份证号的那些事
- [8] 怎样获取PHP变量的变量名之PHP实现
- [8] 社交网络语法:关于“Checkin”
- [8] 位置服务类产品的用户状态和地点管理设想
- [8] iOS的定位原理揭秘
- [8] 优先为移动设计的理由
- [8] 关于不得不在python中使用代理访问网络的
赞助商广告