表,栈和队列

ADT抽象数据类型

 abstract data type,ADT是带有一组操作的一些对象的集合。Java中的Integer,String等就是抽象数据类型。

1-表ADT

1.1 概念的引入

 A0,A1,A2,…,A(N-1)的一般表,我们说这个表的大小是N,我们将为0的表成为空表。

1.2 链表

链表由一些节点组成,这些节点不必在内存中相连,每个节点均含有表元素和到包含表元素后继节点的链(link),我们称之为next链,最后一个单元引用null

1.2.1单向链表

这里写图片描述

1.2.2双向链表

让每一个节点持有一个指定他在表中的前驱结点的链,称之为双链表。

2-栈ADT

限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶top,栈的操作有pop,push操作

栈的后缀模式

后缀 或者 逆波兰 记法,使用一个栈,当见到一个数值时就推入栈中,在遇到一个运算符时,该运算符作用于从该栈弹出的两个数(符号)上,再将计算结果推入栈中。

eg:a+b*c+(d*e+f)*g转化为后缀模式:

abc*+de*f+g*+

3-队列ADT

想栈一样,队列也是表(queue),然而,使用队列时候插入在一端进行而删除在另一端进行。

基本操作

enqueue(入队),他是在表的末端插入一个元素,dequeue(出队),他是删除并返回在表的开头的元素。

队列


第一次使用MarkDown编辑文章,感觉很新鲜,也很方便。这篇就当是测试吧。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值