算法导论读书笔记(10)基本数据结构
来源:互联网 发布:淘宝 贴吧 编辑:程序博客网 时间:2024/05/16 13:01
第三部分 数据结构
第10章 基本数据结构
1. 栈和队列
栈
- 对一个空栈执行弹出操作,则称栈下溢
- 如S.top超过了n,则称栈上溢
Stack-Empty(S) if S.top == 0 return true else return false未考滤上溢Push(S, x) S.top = S.top + 1 S.top = xPop(S) if Stack-Empty(S) error "underflow" else S.top = S.top - 1 return S[S.top + 1]
队列
- Q.head指向队头元素
- Q.tail指向下一个新元素将要插入的位置
- Q.head = Q.tail时,队列为空
- Q.head = Q.tail = 1,删除队列元素发生下溢
- Q.head = Q.tail + 1,队列满
未考滤上下溢EnQueue(Q, x) Q[Q.tail] = x if Q.tail == Q.length Q.tail = 1 else Q.tail = Q.tail + 1DeQueue(Q) x = Q[Q.tail] if Q.head = Q.length Q.head = 1 else Q.head = Q.head + 1 return x
2. 链表
双向链表
- x.next指向它的后继元素,如果x.next = NIL,则x没有后继,即为链表的尾
- x.prev指向它的前驱元素,如果x.prev = NIL,则x没有前驱,即为链表的头
- x.head指向第一个元素,如果x.head = NIL,则链表为空
List-Search(L, k) x = L.head while x != NIL and x.key != k x = L.next return xList-Insert(L, x) x.next = L.head if L.head != NIL L.head.prev = x L.head = x x.prev = NILList-Delete(L, x) if x.prev != NIL x.prev.next = x.next else L.head = x.next if x.next != NIL x.next.prev = x.prev
哨兵双向循环链表
- 哨兵L.nil位于表头和表尾之间
- L.nil.next指向表头
- L.nil.prev指向表尾
- 表尾的next和表头的prev同时指向L.nil
- 慎用哨兵,哨兵所占用的额外的存储空间会造成严重的存储浪费
List-Search'(L, k) x = L.nil.next while x != L.nil and x.key != k x = x.next return xList-Insert'(L, x) x.next = L.nil.next L.nil.next.prev = x L.nil.next = x x.prev = L.nil
阅读全文
0 0
- 算法导论读书笔记(10)基本数据结构
- 算法导论10(基本数据结构)
- 算法导论基本数据结构
- 算法导论笔记:10基本数据结构(番外)
- 算法导论 第10章 基本数据结构
- 算法导论第10章 基本数据结构
- 《算法导论》 — Chapter 10 基本数据结构
- 算法导论读书笔记(10)
- 算法导论读书笔记(22)基本的图算法
- 算法导论读书笔记(14)数据结构的扩张
- 算法导论代码 第10章 基本数据结构
- 《算法导论》第10章 基本数据结构 (2)链表
- 算法导论答案 第10章:基本数据结构
- 算法导论第10章 基本数据结构之二叉树
- 算法导论笔记(2):几种基本数据结构
- 算法导论第十章:基本数据结构
- 基本数据结构(算法导论)与python
- 算法导论 第十章 基本数据结构
- 继承的那些事:
- jquery源码 DOM加载
- 利用DateFormat、Date、Calendar等类 对含有时间的字符串进行提取和计算
- codeforces Educational Codeforces Round 21 B. Average Sleep Time
- springmvc整合redis
- 算法导论读书笔记(10)基本数据结构
- Sqoop的使用
- 用jQuery实现Ajax
- out of memory
- mqd-mount一个分区,并在/etc/fstab写入了挂载信息,后卸载并删除硬盘,导致无法开机
- 5.16
- spring+quartz定时任务的实现
- Android导航栏资源总结
- 处理跨域方式