第7章动态数据结构ppt课件.ppt

第7章动态数据结构ppt课件.ppt

ID:59016600

大小:208.50 KB

页数:67页

时间:2020-09-26

第7章动态数据结构ppt课件.ppt_第1页
第7章动态数据结构ppt课件.ppt_第2页
第7章动态数据结构ppt课件.ppt_第3页
第7章动态数据结构ppt课件.ppt_第4页
第7章动态数据结构ppt课件.ppt_第5页
资源描述:

《第7章动态数据结构ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章动态数据结构1教学目标动态数据结构的概念动态申请和释放内存的方法链表的建立链表结点的插入和删除算法27.1从静态数据结构到动态数据结构7.2动态内存分配7.3链表7.4本章小结37.1从静态数据结构到动态数据结构静态数据结构的特点是由系统分配固定大小的存储空间,以后在程序运行的过程中,存储空间的位置和容量都不会再改变。如数组、简单类型(int、float)等。实际生活中常常有这样的问题,数据量的多少是动态变化的。如何解决?4动态数据结构不确定总的数据存储量,而是为现有的每一个数据元素定义一个确定的初始大小的空间,若干个数据元素分配若干个同样大小的空间

2、;当数据量发生变化时,数据存储空间的大小也发生变化。如果数据量增加,就重新向系统申请新的空间;如果数据量减少,就将现有的多余空间归还给系统。57.2.动态内存分配ANSIC中用于动态操作的标准函数C++中用于动态操作的运算符——new和delete(不要求)6ANSIC中用于动态操作的标准函数ANSIC中提供了若干个动态内存操作标准函数,它们的名称分别是malloc、calloc、realloc、free等。这些函数可以使用在任何的C环境中,其原型定义在malloc.h文件中。7malloc函数原型:void*malloc(unsignedintsize)

3、;功能:向系统申请一个确定大小(size个字节)的存储空间,返回值为一个指向void类型的分配域起始地址的指针值。如果此函数操作失败,返回值为空。8使用格式:指针型变量=(基类型*)malloc(需要的存储空间的字节数);例7-1:为一个整数分配存储空间,需要的语句为:在文件的头部:#include在说明部分:int*p;在程序中:p=(int*)malloc(sizeof(int));9【例7-1】测试malloc的程序:#include#include#includevoid

4、main(){int*p;p=(int*)malloc(sizeof(int));if(!p)exit(0);*p=10;printf("*p=%d",*p);free(p);}10calloc函数原型:void*calloc(unsignedintn,unsignedintsize);功能:向系统申请n个大小为size个字节的连续存储空间,返回值为一个指向void类型的分配域起始地址的指针值。如果此函数操作失败,返回值为空。使用此函数可以为一维数组开辟一片连续的动态存储空间。11使用格式:指针型变量=(数组元素类型*)calloc(n,每一个数组元素

5、的存储空间的字节数);例7-2:为一个有10个整数的一维数组分配存储空间,需要的语句为:在文件的头部:#include在说明部分:int*p;在程序中:p=(int*)calloc(10,sizeof(int));12【例7-2】使用calloc函数程序#include#include#include#defineN10voidmain(){int*p;intx,i;p=(int*)calloc(N,sizeof(int));if(!p)exit(0);for(i=0;i

6、++){scanf("%d",&x);*(p+i)=x;}for(i=0;i

7、,新的存储空间的字节数);例7-3:现有一个为10个整数分配的存储空间,其首地址为p;由于数据量的增加,原存储空间已满,需要扩大原空间为20个整数的大小;需要的语句为:在文件的头部:#include在说明部分:int*p;在程序中:p=(int*)realloc(p,sizeof(int)*20);15【例7-3】使用realloc函数程序#include#include#includevoidmain(){int*p1,*p2;p1=(int*)malloc(sizeof(in

8、t)*10);if(!p1)exit(0);p2=(int*)re

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。