表,栈和队列

    xiaoxiao2025-03-18  13

    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编辑文章,感觉很新鲜,也很方便。这篇就当是测试吧。。。

    转载请注明原文地址: https://ju.6miu.com/read-1297148.html
    最新回复(0)