数据结构知识:链表,队列和栈的区别
来源:互联网 发布:江西淘宝大学 编辑:程序博客网 时间:2024/05/21 12:40
链表,队列和栈都是数据结构的一种。Sartaj Sahni 在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。
一. 链表
1.定义
2. 优点
3. 缺点
4. 类型
5. 实例
(1).单向链表
(2).双向链表
6. 与数组(Array)的对比
二. 队列
1. 定义
2. 队列的方法
add(E e)
element()
offer(E e)
peek()
poll()
remove()
3. 队列的使用和假溢出
4. 循环队列的概念
① 另设一布尔变量以区别队列的空和满;
② 另一种方式就是数据结构常用的:队满时:(tail+1)%n=head,n为队列长度(所用数组大小),由于tail,head均为所用空间的指针,循环只是逻辑上的循环,所以需要求余运算。如图情况,队已满,但是tail+1=5+1=6,n=6,求余6%6=0=head。
三. 栈
1. 定义
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为先进后出表。
2. 栈的方法
empty()
peek()
pop()
push(E
search(Object
3. 栈的实现
①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否
②置TOP=TOP+1(栈指针加1,指向进栈地址);
③S(TOP)=X,结束(X为新进栈的元素);
2、退栈(POP)算法
①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈,
②X=S(TOP),(退栈后的元素赋给X):
③TOP=TOP-1,结束(栈指针减1,指向栈顶)。
- 数据结构知识:链表,队列和栈的区别
- 数据结构知识:链表,队列和栈的区别
- 栈和队列的知识
- 《数据结构》第三章 栈和队列 知识总结导图
- 数据结构第三章 栈和队列 知识导图
- 数据结构第三章 栈和队列 知识导图
- [Python面试知识]数据结构之栈和队列实现
- 链表,队列和栈的区别
- 链表、队列和栈的区别
- 队列和栈的区别
- 栈和队列的区别
- 栈和队列的区别
- 栈和队列的区别
- 队列和栈的区别
- 栈和队列的区别
- 数据结构-栈和队列
- 数据结构-栈和队列
- 数据结构--栈和队列
- 【web】js图片压缩并上传——图片压缩-demo01
- linux系统时间的设置
- Caffe傻瓜系列(1):数据层及参数
- Emit语法简单实现(含实例)
- java中Serializable问题
- 数据结构知识:链表,队列和栈的区别
- 给studio配置方法注释快捷键的方式:
- 关于腾讯应用管理中心,认领应用
- instancetype和id的区别
- 最新版Visual Assist X支持vc6和vs2003
- git error:index file smaller than expected
- 安卓网络图片加载框架-Picasso使用教程
- Caffe傻瓜系列(2):视觉层(Vision Layers)及参数
- Json.NET使用入门(二)【反序列化】