2023-04-22 07:15:54
第一周:数据结构
本周主要学习了数据结构中的链表,特别是单链表的基本概念和实现。链表是一种动态数据结构,它通过指针将一系列节点连接起来,每个节点包含数据和指向下一个节点的指针。
链表结构定义:
链表由节点(Node)组成,每个节点包含一个数据域(如double value)和一个指向下一个节点的指针(如Node *next)。
示例中展示了两种定义方式,一种是简单的结构体定义,另一种是带有构造函数的结构体定义,后者使得节点的创建更加方便。
链表创建与遍历:
在main函数中,程序从文件中读取数字,并为每个数字创建一个新节点,将其添加到链表的头部。
遍历链表时,使用一个指针(如ListNode *ptr)从头节点开始,依次访问每个节点,直到遇到nullptr(表示链表结束)。
链表操作:
增添元素:在链表头部增添元素相对简单,只需创建新节点并将其next指针指向原链表的头节点,然后更新头节点指针。
删除元素:删除元素需要找到要删除节点的前一个节点,然后修改其next指针,使其跳过要删除的节点。需要注意的是,删除节点后应释放其内存,以避免内存泄漏。
学习资源:
提到了一个很受国外欢迎的数据结构经典课程,该课程有中英文字幕,虽然代码实现部分可能是C和C++混杂,但数据结构讲解清晰。
本周的学习重点是理解链表的基本概念和实现方式,包括链表的创建、遍历以及基本的增添和删除操作。通过实践,可以加深对链表这种动态数据结构的理解,并为后续学习更复杂的数据结构打下基础。同时,也提到了可以利用外部资源来加深对数据结构的学习和理解。