作业信息
作业 | 内容 |
---|---|
我的班级 | 我的班级 |
作业要求 | 第十二周要求 |
作业目标 | 学习c语言中结构体和基础的数据结构 |
作业正文 | 此博客 |
教材内容总结
c语言程序设计
- 第十二章中主要讲了结构体的定义,使用方法还有结构体指针的相关用法.以结构体为基础,衍生讲了联合体和枚举类型.最后讲了单向链表的知识.
教材学习中的问题和解决
问题:单向链表的详细原理
结构体包含一个整数类型的数据元素和一个指向下一个节点的指针。通过这个结构体,可以创建链表并操作链表。
创建链表的过程通常包括以下几个步骤:
定义一个头指针指向链表的第一个节点。
创建第一个节点,并将头指针指向这个节点。
依次创建其他节点,并将前一个节点的next指针指向当前节点。
链表的操作通常包括以下几种:
插入节点:将一个新节点插入到链表的指定位置。
删除节点:删除链表中指定位置的节点。
查找节点:查找链表中是否存在指定数值的节点。
遍历链表:依次访问链表中的每个节点。
在C语言中,可以使用指针来实现链表的操作。通过指针,可以访问链表中的节点,并进行插入、删除、查找等操作。
需要注意的是,链表的插入和删除操作需要特别小心,以避免出现内存泄漏和指针丢失等问题。
问题二:结构体的内存占用计算
首先,计算结构体中每个成员变量的内存占用大小。基本数据类型的大小可以通过sizeof运算符获取,而复合数据类型(如数组或结构体)的大小需要递归计算。
然后,根据编译器的对齐规则,确定结构体的对齐方式。对齐规则通常要求结构体的起始地址和每个成员变量的地址都是某个值的倍数(通常是成员变量的大小或者CPU的字长)。
最后,根据对齐方式,计算结构体的总内存占用大小。通常来说,结构体的总内存占用大小是成员变量中占用空间最大的成员变量的大小的倍数,再加上填充字节(如果有的话)。
基于ai的学习
代码行数(新增/累积) | 学习时间(新增/累积) | |
---|---|---|
目标 | 2000行 | 100小时 |
第一周 | 50/50 | 2/2 |
第二周 | 50/50 | 2/2 |
第三周 | 50/50 | 2/2 |
第四周 | 50/50 | 2/2 |
第五周 | 300/300 | 2/2 |
第六周 | 300/300 | 2/2 |
第七周 | 200/200 | 1/1 |
第八周 | 200/200 | 1/1 |
第九周 | 150/150 | 2/2 |
第十周 | 200/200 | 2/2 |
第十一周 | 200/200 | 5/2 |
第十二周 | 300/300 | 6/6 |