第7章 C语言 动态数据结构.pptVIP

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 动态数据结构 目录 态数据结构 本章开始介绍动态数据结构,主要介绍链表结构的建立、在链表中查找指定元素、插入一个新元素、删除一个元素等操作。学完本章内容后,要求深刻理解动态存储结构的概念,并正确运用。 7.1 从静态数据结构到动态数据结构 在此之前,我们涉及到的都是静态数据结构,像数组、简单类型(int、float)等。静态数据结构的特点是由系统分配固定大小的存储空间,以后在程序运行的过程中,存储空间的位置和容量都不会再改变。而实际生活中常常有这样的问题,数据量的多少是动态变化的。 7.1 从静态数据结构到动态数据结构 例如,图书馆的藏书量,在图书馆初建时,假设有10000本,随着时间的推移,藏书的数量必定要增加。有人可能会想,在定义一个静态变量时,预留出一部分空间,但这也会引起一些问题,首先多出的那部分空间不知何时才能使用,在没有被使用之前一直被闲置;其次,谁又能保证增加的空间就足够呢? 7.1 从静态数据结构到动态数据结构 问题的关键在于,此问题的数据本身就是变化的,而且是不确定的变化,什么时候变、怎么变都是未知的。对这样的问题用静态存储结构来描述和存放显然捉襟见肘,存在隐患。 动态数据结构不确定总的数据存储量,而是为现有的每一个数据元素定义一个确定的初始大小的空间,若干个数据元素分配若干个同样大小的空间;当问题的数据量发生变化时,数据的存储空间的大小也发生变化。如果数据量增加,就重新向系统申请新的空间;如果数据量减少,就将现有的多余的空间归还给系统。 7.2. 动态内存分配 使用计算机解决问题的所有方法都是通过使用系统提供给我们的基本命令或函数来实现的。所以首先让我们来看看,c的标准函数中有哪些是用于动态内存分配的,怎样使用。 7.2.1 ANSI C 中动态内存操作标准函数 ANSI C中提供了若干个动态内存操作标准函数,它们的名称分别是malloc、calloc、realloc、free等。这些函数可以使用在任何的C环境中。 1.malloc函数 malloc函数是 C的标准函数之一。原型定义在malloc.h文件中。 原型为: void *malloc(unsigned int size); 其作用是向系统申请一个确定大小(size 个字节)的存储空间,返回值为一个指向void类型的分配域起始地址的指针值。如果此函数操作失败,返回值为空。 1.malloc函数 使用格式: 指针型变量 =(基类型*)malloc(需要的存储空间的字节数); 例7-1:为一个整数分配存储空间,需要的语句为: 在文件的头部:#include malloc.h 在说明部分: int *p; 在程序中:p = ( int * )malloc ( sizeof( int ) ) ; 测试malloc的程序举例: #include malloc.h #include stdio.h #include stdlib.h void main() { int *p; /*定义一个指向整型的指针变量*/ int x; p = ( int * )malloc( sizeof( int ) ); if ( !p ) exit( 0 ); p=x; scanf(“%d”, p); printf(“x=%d”, x); } 2.calloc函数 calloc函数是 C的标准函数之一。原型定义在malloc.h文件中。 原型为: void *calloc(unsigned int n , unsigned int size); 其作用是向系统申请 n 个大小为size 个字节的连续存储空间,返回值为一个指向void类型的分配域起始地址的指针值。如果此函数操作失败,返回值为空。可以为一维数组开辟一片连续的动态存储空间。 2.calloc函数 使用格式: 指针型变量 =(数组元素类型*)calloc(n , 每一个数组元素的存储空间的字节数); 例7-2:为一个有10个整数的一维数组分配存储空间,需要的语句为: 在文件的头部:#include malloc.h 在说明部分: int *p; 在程序中:p = (int *)calloc( 10 , sizeof(int)) ; 使用calloc函数程序举例: #include malloc.h #include stdio.h #include stdlib.h main(){ int *p; int x; p =(int *)calloc(10, sizeof(int)); if(!p) exi

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档