数据结构动态存储表示-严蔚敏《数据结构》C语言版讲解

需积分: 10 3 下载量 136 浏览量 更新于2024-08-19 收藏 702KB PPT 举报
"堆分配存储表示-清华大学严蔚敏数据结构c语言完整ppt" 在计算机科学中,数据结构是研究如何高效地存储和访问数据的学科。本节主要讨论的是堆分配存储表示,这是在程序执行过程中动态分配存储空间的一种方法,特别是在C语言中。堆分配存储表示常用于处理那些大小不确定或在运行时才能确定的数据集合,如动态数组。 在描述中提到的"4.2.2堆分配存储表示",指的是在顺序表(一种线性数据结构)的实现中,存储空间不是预先静态分配的,而是根据需要在程序运行时通过动态分配函数来获取。C语言提供了`malloc()`和`calloc()`函数来申请内存,以及`free()`函数来释放不再使用的内存,这些函数允许我们创建可变大小的字符数组。 例如,`typedef char *string;`定义了一个类型`string`,它等价于C中的字符指针,可以用来表示字符串。而`typedef struct{ char *ch; int length; }hsring;`定义了一个结构体`hsring`,它包含一个字符指针`ch`和一个整型变量`length`,这样的结构体可以用来表示带长度信息的字符串,便于管理和操作。 在数据结构中,堆分配存储表示的优势在于灵活性,它可以适应不同规模的数据,避免了因预分配过大内存造成的浪费,或者因预分配过小导致的内存溢出。然而,这种表示方式也有一些缺点,比如内存分配和释放的开销,以及可能出现的内存碎片问题。 在"完整数据结构"的学习中,数据结构包括了诸如链表、树、图等多种类型,每种结构都有其特定的逻辑结构和物理结构。逻辑结构关注数据元素之间的关系,而物理结构则涉及数据在内存中的实际布局。此外,数据结构还包括定义在这些结构上的操作(即运算),这些运算必须保持数据结构的特性。 在第一章绪论中,介绍了数据结构的重要性,它不仅影响程序的效率,还与信息的表示和处理密切相关。数据结构的选择和设计直接影响到算法的选择和执行效率。例如,在电话号码查询系统、图书馆书目检索系统、教师资料档案管理系统和多叉路口交通灯管理等实际问题中,数据结构的选择至关重要,因为它决定了信息如何被存储、检索和更新。 通过以上内容,我们可以理解数据结构不仅仅是数据的简单集合,它还包含了数据之间的关系和对这些数据进行操作的方式。学习和掌握各种数据结构及其算法,是提高程序设计能力,解决复杂问题的关键。