数据结构与算法
文章平均质量分 53
HIT_微笑前进
我或许不是最好的但我愿尽自己最大的努力活出自己的精彩深思慎取尽志无悔
展开
-
判断循环队列是满还是空
判断一个循环队列是满还是空的方法: 方法一:设置一个标志tag,当每一次入队的时候,令tag = 1;当出队的时候,tag = 0;所以,如果在tag = 1后,Q.front = Q.rare,则说明是因为插队而引起的,所以是因为队列满了;反之,tag = 0时,Q.front = Q.rare,则说明是因为出队引起的,由此判断是队列空了; 方法二:用两个定义区分对列是满的还是空的,定义当Q原创 2013-10-28 00:06:20 · 11181 阅读 · 0 评论 -
[HOJ]HIT's Powerstation
这个题没什么复杂的地方,就是一个关于最短路径的实现,可以用floyd算法,也可以用Dijkstra算法实现,下面是用Dijsktra算法实现的 题目: Since the satellite of HIT has been sent to space successfully, HIT needs more electric power. Shuguo Wang has decided原创 2014-03-18 19:04:27 · 1457 阅读 · 0 评论 -
轻松搞定面试中的链表的题
版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/7393134 链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文对链转载 2015-03-19 20:32:03 · 1156 阅读 · 0 评论 -
【hoj】2651 pie 二分查找
二分查找基本题原创 2014-06-29 11:50:40 · 1858 阅读 · 2 评论 -
二分查找--你真的掌握了吗?
二分查找,你真的掌握了吗? 分类: 算法与数据结构 笔试与面试 2013-05-21 19:58 5532人阅读 评论(10) 收藏 举报 二分查找变形面试题 版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/8937978 二分查找,最基本的算法之一,也是面试转载 2015-03-19 23:55:02 · 834 阅读 · 0 评论 -
二叉树应用总结(未完待续)
由二叉树的定义我们知道它是由递归方法来定义的,所以一些关于它的处理我们也可以用递归方法求解,不过由于递归方法有可能会降低处理的速度,增加时间复杂度,有些时候非递归方法能够更好地解决问题。 一些操作运用递归可能大同小异,下面给出几个,主要靠自己领会二叉树的特点: 1、求二叉树的节点个数: 递归:若二叉树为空,则返回0; 二叉树不为空,则返回左子树节点数+右子树结点数+1; 2、求二叉原创 2014-03-20 22:44:13 · 1586 阅读 · 0 评论 -
快速检索的方法删除顺序表中的元素
使用顺序表存储元素并且删除一定的元素,传统的遍历的方法的时间复杂度为O(n^2);使用快速检索的方法使得时间复杂度为O(n); 采用快速检索的思想,用两个变量i和k记录顺序表中被处理的两端元素的下标,边检索边增加i和减少j,当遇到不相等的i处数值时,将j处的与之交换,直到i>=j,为止,由于移动每个元素一次使得复杂度为O(n); #include #include #define MAX 1原创 2013-10-05 20:37:32 · 1475 阅读 · 0 评论 -
使用有头结点的链表进行逆置
分别将有头结点的链表和无头结点的链表进行逆置; 有头结点的链表是创建一个为空的表头结点而后跟着第一个结点,创建出一个链表; 无头结点的链表是利用指针,第一个结点就开始进行存储; 两个的共同点就是进行逆置的时候改变每个结点的指针的方向,再将头和尾设置就行了,利用链表进行逆置相比有顺序表而言不用进行每个结点的交换只用改变指针,使得更加方便。 有头结点: #include #include原创 2013-10-05 20:29:58 · 2437 阅读 · 0 评论 -
KMP算法之我见
KMP算法之我见: 学习数据结构与算法也有一段时间了,一直都在学各种数据结构,线性表、链表、栈、队列都是一些编程必备的知识,都要积累,掌握了这些之后就要接触算法了,跃跃欲试,可是就在学习字符串的时候遇到的关于模式匹配的KMP算法就让我怀疑自己的智商了,在这两天通过查找资料,看别人的思路后,慢慢的,也理出了一些头绪,现在整理一下,希望能有更好的理解。 首先,KMP算法分为两部分KMP和NEXT[原创 2013-10-17 20:44:12 · 1120 阅读 · 0 评论 -
数据结构与算法 绪论
计算机的处理数据能力是是计算机解决各种实际问题的基础,但是现实世界大众的实现问题必须经过抽象,得出反映世纪食物本质的数据表示后才可以被计算机处理。数据结构课程主要研究的问题就是将这些数据以及他们之间的关系存储到计算机中,再用有效的的方法去处理这些数据。 问题求解的四个阶段:分析阶段、设计阶段(数据结构+算法)、编码阶段、测试和维护阶段; 数据结构的分类: 逻原创 2013-09-24 15:09:35 · 1232 阅读 · 0 评论 -
线性表(一)
线性结构的是简单而又常见的数据结构,线性表是一种典型的线性结构。向量——最一般的线性表;栈和队列——特殊的线性表; 线性表是n(n>=0)个数据元素(也称结点或表元素)组成的有限序列。线性表中的元素并不要求是同一种数据类型,只有向量才要求所有元素要用同一种数据类型; 线性表中的元素的逻辑存储: 顺序存储、链接存储、散列存储; 顺序存储——顺序表: 物理位置相邻;原创 2013-09-24 22:46:40 · 1082 阅读 · 0 评论 -
Java、C、C++中的数组的比较
数组是一个很常用的数据类型,在不同的语言中它既有相似点又有各个语言所特有的地方,下面是个人对于数组的一些理解: 相同点: 1、不管是在C/C++或是Java中,数组都是相同类型的数据集合,虽然在面向对象语言中,由于类之间的继承的关系,让一个数组中可能存有看似不同的数据类型,但是注意本质上它们都是继承自同一个类型即数组的类型的(例如:对于一个水果数组:数组中的值可能有苹果、香蕉、葡萄。。。但是它原创 2015-04-12 20:53:50 · 1396 阅读 · 0 评论