- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C_lab8-1_链表初步_answer
实验-1链表初步
【实验目的】
掌握
掌握
掌握头插法和尾插法创建简单单链表
【实验内容】
Part1:基础练习(课堂练习)
}v1;
若要利用下面的程序片断使指针变量p指向一个存储整型数据的变量空间,则应填入什么内容?int *p;
p= (int *) malloc (sizeof(int));
写出库函数malloc、calloc、free函数的具体原型,并说明其功能及参数含义,以及返回值:
malloc函数:
原型:void * malloc(unsigned int size);
功能:从堆区(自由存储区)申请size个内存单元
返回值:若分配成功,则返回这块内存空间的起始地址,不成功则返回NULL
calloc函数:
原型:void * calloc(int n, unsigned int size);
功能:从堆区(自由存储区)申请n*size个内存单元
返回值:若分配成功,则返回这块内存空间的起始地址,不成功则返回NULL
free函数:格式:
原型:void free (void * p);
功能:释放指针p指向的内存空间
返回值:不带返回值
有以下结构体类型定义及变量声明,且如下图所示,指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是 。
struct
{
char data;
struct node * next;
}a, b, *p = a, *q = b;
A.a.next = q; B.p.next = b;
C.p-next = b; D.(*p).next = q;
以下程序采用栈式创建(所谓的“静态创建”)一个有2个学生数据的链表,并输出各结点中的数据,请填空完成下列程序设计。
L20: b
L21: NULL
L26: p-num, p-score
L27: p-link
若以建立下图中的链表结构,指针p、q分别指向图中所示结点,则不能将q所指的结点插入到链表末尾的一组语句是: 。
A. q-next = NULL; p = p-next; p-next = q;
B. p = p-next; q-next = p-next; p-next = q;
C. p = p-next; q-next = p; p-next = q;
D. p = (*p).next; (*q).next = (*p).next; (*p).next = q;
以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链表不带有头结点)。请填空完成程序设计
while(p!=NULL)
{
c++;
p=p-next;
}
设计程序,动态创建(堆式创建)不带有头结点的包含10个结点的单链表,该链表结点由整型数据域和指针域构成,键盘输入整型数据,依次为1,2,3,4,5,6,7,8,9,10:(答案参阅课件范例程序,仅需修改节点数据类型为int,结点创建个数为10即可)
采用头插法创建单链表:
采用为插法创建单链表:
Part2:巩固提高(课后实践)
Part3:本节知识自我小结,及实验心得体会
文档评论(0)