0.算法操作中的集合是动态的,支持算法操作的动态集合被称为字典(dictionary)。
1.用数组储存队列也可以让队列内的空间动态分布,将数组首尾在逻辑上相连,只要队列长度不超过已分配空间就可以进行下去。
2.链表有多种形式(singly linked, doubly linked ...)和操作,通过指针(卫星数据)和对象(关键字)可以实现链表,一些不支持指针和对象数据类型的语言可以使用数组来构建链表(key[], next[], prev[]),在不支持显式指针的语言中还可以利用指针的偏移量构建单个数组实现链表功能,在单数组中关键字的长度不受限制,这也是单数组较多数组的优势。在题目“破损的键盘”里就用到了多数组实现链表。
3.很多系统支持自主分配和释放内存操作,在数组构建的链表中,我们可以将自由对象保存在一个自由表中(free list),实现分配和获取内存。该结构下一组多数据可以同时储存多个链表,并对链表进行动态操作。
4.哨兵(sential)是个哑对象,用于简化边界的处理。在需要多次遍历操作的链表中加入哨兵可以简化循环中的执行量。
5.有根树有多种表达方法,待学。
200116 基本数据结构
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 内容简介 前言 数组和链表的定义 数组和链表的基本操作 第七课预告 1. 前言 上一课 [算法和数据结构-初级 |...
- 说明:该系列博客整理自《算法导论(原书第二版)》,但更偏重于实用,所以晦涩偏理论的内容未整理,请见谅。另外本人能力...