0.算法操作中的集合是动态的,支持算法操作的动态集合被称为字典(dictionary)。
1.用数组储存队列也可以让队列内的空间动态分布,将数组首尾在逻辑上相连,只要队列长度不超过已分配空间就可以进行下去。
2.链表有多种形式(singly linked, doubly linked ...)和操作,通过指针(卫星数据)和对象(关键字)可以实现链表,一些不支持指针和对象数据类型的语言可以使用数组来构建链表(key[], next[], prev[]),在不支持显式指针的语言中还可以利用指针的偏移量构建单个数组实现链表功能,在单数组中关键字的长度不受限制,这也是单数组较多数组的优势。在题目“破损的键盘”里就用到了多数组实现链表。
3.很多系统支持自主分配和释放内存操作,在数组构建的链表中,我们可以将自由对象保存在一个自由表中(free list),实现分配和获取内存。该结构下一组多数据可以同时储存多个链表,并对链表进行动态操作。
4.哨兵(sential)是个哑对象,用于简化边界的处理。在需要多次遍历操作的链表中加入哨兵可以简化循环中的执行量。
5.有根树有多种表达方法,待学。
网友评论