抽象数据类型(ADT)与数据结构-信息隐蔽与抽象

需积分: 8 1 下载量 24 浏览量 更新于2024-08-20 收藏 4.92MB PPT 举报
"从被调函数返回调用函数的一般步骤-数据结构 严蔚敏版" 本资源主要探讨了从被调函数返回调用函数的一般过程,并提及了抽象数据类型(ADT)和数据结构的相关概念。以下是详细解释: 在计算机程序中,函数调用是常见的操作。当一个函数被另一个函数调用时,控制权转移给被调函数。当被调函数完成其任务后,需要将控制权返回给调用函数。这一过程包括以下步骤: 1. 如果调用栈为空,这意味着已经到达了主函数或者所有调用链已经结束,此时执行正常返回,程序终止。 2. 从调用栈的栈顶弹出一个工作记录。这个工作记录通常包含了被调函数的局部变量、参数值以及返回地址等信息。 3. 工作记录中的参数值和局部变量的值会被赋给相应的变量,这样在返回到调用函数时,之前的环境可以得到恢复。 4. 将被调函数的返回值赋给调用函数中对应的变量,这通常是调用函数期望接收的结果。 5. 最后,程序转移到保存在工作记录中的返回地址,继续执行调用函数后续的代码。 此外,资源还提到了几个应用实例,如电话簿查找、图书馆书目检索、教师资料管理以及交通灯管理,这些都是需要数据结构和算法支持的问题。数据对象可以是有限的(如电话簿中的联系人数量),也可以是无限的(如动态变化的图书数据)。 在讨论数据结构时,提到了抽象数据类型(ADT)的概念。ADT是一种高级编程工具,它定义了一组操作以及这些操作作用于一组值的方式。ADT与系统提供的基本数据类型不同,它可以是用户自定义的。ADT包括定义(描述数据对象和操作)、表示(数据如何存储)和实现(操作如何执行)三部分。其关键特性是抽象和信息隐蔽,抽象关注问题核心,忽略非本质细节,而信息隐蔽则隐藏了数据的内部实现,只暴露必要的接口供用户使用。 例如,整数的ADT由整数值域和整数运算(如加、减、乘、除)组成。在C语言中,数组是另一种重要的数据结构,其下标从0开始,第i个元素的下标为i-1。顺序存储的线性表(如数组)具有快速访问元素的优点,但插入和删除操作可能需要移动大量元素,且空间利用率不高,不便于动态扩容。 讲解过程中,还会涉及常见的指针操作,如指针的声明、初始化、赋值、解引用以及指针间的比较等,这些都是理解C/C++程序设计的关键。 总结来说,本资源涵盖了函数调用返回流程、抽象数据类型的应用以及数据结构的基本概念,对于学习数据结构和算法的初学者具有很高的参考价值。