随笔分类 - 数据结构与算法
摘要:C语言实现单向循环链表,主要功能为空链表创建,链表初始化(头插法,尾插法),链表元素读取,按位置插入,(有序链表)按值插入,按位置删除,按值删除,清空链表,销毁链表。 单向循环链表和单向链表的区别:(1)单向链表为头指针,循环链表为尾指针,头指针指向头结点,尾指针指向终端结点;(2)为统一方便操作,
阅读全文
摘要:彻底理解链表中为何使用二级指针或者一级指针的引用 数据结构之链表-链表实现及常用操作(C++篇) C语言实现单链表,主要功能为空链表创建,链表初始化(头插法),链表元素读取,按位置插入,(有序链表)按值插入,按位置删除,按值删除,清空链表,销毁链表。 关键思路:(1)将结点创建结构体;(2)链表中添
阅读全文
摘要:通过类模板实现顺序表时,若进行比较和遍历操作,模板元素可以通过STL中的equal_to仿函数实现,或者通过回调函数实现。若进行复制操作,可以采用STL的算法函数,也可以通过操作地址实现。关于回调函数和地址操作可以查看:C语言利用动态数组实现顺序表(不限数据类型) 主要功能:初始化,按照索引插入,删
阅读全文
摘要:基本数据结构:链表(list) 线性表 线性表通过存储结构可以分为顺序表和链表,其中顺序表是顺序结构(数组)存储的线性表,链表是链式结构存储的线性表。 顺序表 顺序表是通过顺序结构存储的线性表,一般通过动态数组实现,也可以通过vector实现(vector底层是顺序表,实质为用顺序表实现顺序表)。
阅读全文
摘要:【C++】细说C++中的数组之动态数组 【C++】细说C++中的数组之“静态”数组 【笔试】数组、线性表的本质区别 数组 数组就是相同数据类型的元素按一定顺序排列的集合。本质:物理上存储在一组联系的地址上,也就是数据结构中的顺序存储物理结构。 数组分为静态数组和动态数组,在定义数组时,首先要确定数组
阅读全文
摘要:实现任意数据类型的顺序表的初始化,插入,删除(按值删除;按位置删除),销毁功能。、 顺序表结构体 实现顺序表结构体的三个要素:(1)数组首地址;(2)数组的大小;(3)当前数组元素的个数。 注意事项:void **addr为二级指针,即数组的元素也为指针,因为我们并不知道用户的输入数据是什么类型,操
阅读全文
摘要:最短路径—Dijkstra算法和Floyd算法 透彻理解迪杰斯特拉算法 Dijkstra算法的使用条件:图中不存在负权边。 有待验证 Dijkstra 算法,用于对有权图进行搜索,找出图中两点的最短距离,既不是DFS搜索,也不是BFS搜索。 把Dijkstra 算法应用于无权图,或者所有边的权都相等
阅读全文

浙公网安备 33010602011771号