抽象数据结构(ADT)的介绍

抽象数据类型(ADT)是数学上的概念,定义了操作集合但不涉及具体实现。本文介绍了ADT中的表、栈和队列,包括相关操作如插入、删除、查找等,并探讨了它们在多项式ADT、基数排序、行式打印机等场景的应用。此外,还讨论了树的数据结构,强调了树在提高数据访问效率方面的优势,以及树的递归定义和遍历在目录结构中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
抽象数据类型(ADT(abstract data type))是一些操作的集合。抽象数据类型是数学的抽象;在ADT的定义中根本没有涉及如何实现操作的集合。
整数,实数及布尔量有与它们相关的操作,而抽象数据类型也有自己额相关操作。对于集合ADT,有并,交,测定大小,取余等操作。

表,栈和队列

  • 操作:
    插入,删除,查找…
  • 应用:
    多项式ADT(一元多项式)
    基数排序(线形时间排序)
    多重表(大学的课程注册)
栈:
  • 操作:
    入栈,出栈
  • 应用:
    平衡符号
    后缀表达式
    函数的调用
队列:
  • 操作:
    入队,出队
  • 应用:
    行式打印机
    买票队列
    计算机网络访问
    接线员的操作(大公司的传呼)

对于大量的输入数据,链表的线性访问时间太慢,不宜使用。所以产生了另一种简单的数据结构:树,其大部分操作的平均运行时间为O(logN)。
定义:
定义树的一种自然方法是递归的方法,一根树是一些节点的集合。这个集合可以是空集;若非空,则一根树由称作根(root)的节点以及0个或多个非空的子树T1,T2…Tn组成,这些子树中每一棵的根都被来自根r的一条有向的边(edge)所连接。

树的遍历及应用
  • 目录结构
    设我们想列出目录中所有文件的名字。我们的输出格式为:深度为di的文件的名字将被di次跳格(tab)缩进后打印出来
staic void
<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值