- 博客(10)
- 收藏
- 关注
原创 数据结构-图及其应用
克鲁斯卡尔算法(Kruskal's algorithm)是一种用于生成最小生成树的算法,它的基本思想是先将所有边按照权重从小到大排序,然后从小到大依次加入边,如果加入一条边会形成环,则不加入,直到所有的点都被加入生成树为止。实现了拓扑排序,首先将入度为0的顶点加入队列中,然后依次取出队列中的顶点,并将其相邻的顶点的入度减1,如果减1后入度为0,则将其加入队列中。数组,将源点的距离设为0,然后依次加入未确定最短路径的顶点集合中的距离最小的顶点,并更新其相邻的顶点到源点的距离。最后输出生成树的边和权重。
2023-06-12 17:10:46 210 1
原创 栈应用--链队列
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的规则FIFO(First In First Out)其实队列换一种说法就是我们文明生活中的 排队问题,不管干什么一般总是遵守先来后到的。入队列:进行插入操作的一端称为队尾。出队列:进行删除操作的一端称为队头。
2023-04-24 21:09:10 55
原创 栈应用--括号匹配
每出现一个右括号( )或]或} ),就消除一个左括号(出栈)。每出现一个左括号( (或[或{ ),就入栈(压栈)。今天通过括号匹配的代码应用来实现出栈,入栈的学习。
2023-04-24 17:01:21 71
原创 汉诺塔代码及应用
在分析汉诺塔问题,我们可以借助位置B,先把n-1层以上的圆盘放到B位置,然后把第n个圆盘放到C位置上,最后将n-1层以上的圆盘放到C位置上,那么就能够轻松解决问题了.n-1层圆盘从A移动到B上其实与n层圆盘移动到C位置上是一样的过程,即先把n-2层圆盘放到位置C上再把第n-1个圆盘放到位置B 上,最后n-2层圆盘放到B上,那么对于n-2层圆盘是如何放到C上的呢?其实这是一个重复性的过程。
2023-04-19 23:01:03 412
原创 线性表总结
线性表可以采用两种存储方式:顺序存储和链式存储。链式存储则是通过一系列节点来存储线性表中的元素,每个节点包含数据元素和指向下一个节点的指针。2.插入操作:在线性表的指定位置插入一个元素,如果插入的位置已经存在元素,则原有的元素向后移动,给插入的元素腾出空间。4.查找操作:根据给定的元素值或者下标,查找线性表中指定元素的位置,如果不存在,则返回空。5.遍历操作:按照线性表的顺序,从头到尾遍历线性表中的所有元素,对每个元素进行相应的操作。3.删除操作:在线性表中删除指定位置的元素,并将删除的元素返回。
2023-04-19 22:31:00 65
原创 数据结构之静态链表
学习静态链表的过程中,我对数据结构的理解进一步加深,也对链表这种数据结构的特点和实现方式有了更深刻的认识。静态链表的缺点:失去了顺序储存结构随机存取的特征,没有解决连续储存分配带来的表长难以确定的问题。的优点:在插入和删除操作的时候,不需要移动元素。
2023-04-11 07:35:45 51 1
原创 数据结构之单链表1.
代码中首先进行了定义结构体,头指针等操作。然后通过printList函数输出链表信息,append Element函数用于添加元素,insertElement函数用于插入元素,deleteElement用于删除元素。通过摘抄代码,我学会了在单链表中添加,插入,删除元素的算法。同时,在敲代码的同时发现自己对结构体和指针的用法还不够清楚,对代码中的一些内容不能完全理解,所以对基础内容的熟悉在学习中是极为重要的。
2023-03-29 23:38:45 72
原创 数据结构之顺序表
在抄写的过程中我理解并学会了初始化,添加,删除,定位线性表中的元素的算法.所谓实践出真知,在抄写代码的过程中边敲边理解,学习效率得到大大提高.学习了顺序表之后,老师让我们抄他的代码加以理解.
2023-03-28 12:15:32 67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人