摘要: 在数据结构的学习中,排序是我们要重点学习的一部分;在掌握几种经典排序算法的同时,我们还要能够根据实际中遇到的情况,结合它们的时间复杂度、空间复杂度、稳定性这几个方面选择最合适的算法。现针对常用的几种经典排序算法及易出错的地方总结如下: 1.插入排序 (1)直接插入排序 直接插入排序是一种最简单的排序 阅读全文
posted @ 2018-03-14 19:52 tp_16b 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 我们大家在小时候可能都玩过 “找路线”、“逃出迷宫” 这样的小游戏。通常的玩法一般是一开始顺着入口往后面走,遇到岔路口,就选择其中一条路往后走,走到此路无路可走的时候 ,就再退回到岔路口,然后再去选另外的一条路走,每次走到此条路不通时就返回到上一个岔路口另选一条路走 ......经历这般 “摸爬滚打 阅读全文
posted @ 2018-03-05 21:35 tp_16b 阅读(1317) 评论(0) 推荐(1) 编辑
摘要: 上篇小结了一下 关于二叉树的基本内容,这里再作两点补充 :二叉树销毁 和 镜像二叉树 <1> 二叉树销毁 在进行销毁时注意两点: ①使用后序遍历的思路进行销毁 ②由于最后二叉树销毁后,需要将最初指向树根结点的指针置空,故函数传参需要传二级指针 <2>镜像二叉树 顾名思义其就是原二叉树的镜像对称二叉树 阅读全文
posted @ 2018-01-14 20:33 tp_16b 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 二叉树是我们在学习数据结构过程中的重难点,这里对其内容稍作总结,巩固自己知识的同时,也希望可以帮助到正在学习此部分内容的同学。废话不多讲,先来做好准备工作,创建好一个二叉树,实现它的一些基本操作。 二叉树的创建以及普通操作 考察二叉树属性的相关操作 二叉树的层次遍历 思路:借助队列来实现,先把二叉树 阅读全文
posted @ 2018-01-14 19:12 tp_16b 阅读(4099) 评论(0) 推荐(2) 编辑
摘要: 当前学习数据结构内容,由于后面常常需要用到栈和队列,为方便后面学习,在此做个记录。 if(s->_top == s->_end) { size_t capacity = s->_end > 0? s->_end*2 : 4; DataType* p = (DataType*)realloc(s->_ 阅读全文
posted @ 2018-01-09 16:44 tp_16b 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 贪吃蛇实现基本的移动、吃掉食物、加速、暂停、显示游戏分数等基本功能。 代码如下: 阅读全文
posted @ 2018-01-04 18:11 tp_16b 阅读(281) 评论(2) 推荐(0) 编辑
摘要: 1.判断单链表是否带环?若带环,求环的长度?求环的入口点?并计算每个算法的时间复杂度&空间复杂度 思路:还是通过快慢指针来解决,让fast指针每次走2个结点,慢指针一次走一个结点 时间复杂度为O(n) 空间复杂度O(1 ) 注意:fast每次走3个 4个.. 结点是不行的。分析如下: 考虑清楚后,便 阅读全文
posted @ 2018-01-04 17:28 tp_16b 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 1.从尾到头打印单链表 2.删除一个无头单链表的非尾节点(不能遍历链表) 3.在无头单链表的一个结点前插入一个结点(不能遍历链表) 4.单链表实现约瑟夫环(JosephCircle) 约瑟夫环问题是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为m的人开始报 阅读全文
posted @ 2018-01-03 13:07 tp_16b 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 1.时间复杂度 时间复杂度实际就是函数,函数计算执行的基本操作次数 . 进行时间复杂度分析时需注意: 1)时间复杂度强调的是函数执行的操作次数,这里的函数是指数学里面的函数,而不是C语法里的函数; 2)在实际中我们通常情况考量的是算法的最坏情况; 3)忽略掉常数; 4) 关注运行时间的增长趋势,关注 阅读全文
posted @ 2017-12-08 22:20 tp_16b 阅读(1476) 评论(0) 推荐(0) 编辑
摘要: 可将其分为下面四个状态进行讨论即可: 阅读全文
posted @ 2017-12-08 21:03 tp_16b 阅读(333) 评论(0) 推荐(0) 编辑