
数据结构与算法
文章平均质量分 79
love1code
我只想做一名程序员。
展开
-
算法时间复杂度的衡量
算法复杂度分为时间复杂度和空间复杂度,一个好的算法应该具体执行时间短,所需空间少的特点。 随着计算机硬件和软件的提升,一个算法的执行时间是算不太精确的。只能依据统计方法对算法进行估算。我们抛开硬件和软件的因素,算法的好坏直接影响程序的运行时间。 我们看一下小例子: int value = 0; // 执转载 2015-03-29 16:08:59 · 1706 阅读 · 0 评论 -
循环队列的实现
队列就是一个特殊的线性表。特殊在于队列只允许在队头删除元素,在队尾添加新元素。和我们生活中的排队是一个道理。 队列的一种实现方式是用数组,但是用数组就会出现队列“假满”的情况。 于是循环队列就诞生了。 这只是逻辑结构,数组在内存的物理结构是不变的。我们关心的正是逻辑结构 下面是关键的几点: 1.初始化 front=rear=0;原创 2015-06-16 12:55:57 · 550 阅读 · 0 评论 -
Linus:利用二级指针删除单向链表
Linus大神在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level coding。 下面是Linus的教学原文及翻译—— “At the opposite end of the spectrum, I actually wish more people understoo转载 2015-06-25 11:42:35 · 470 阅读 · 0 评论 -
链式栈的接口实现
1.栈的特点是 先进后出 。 2.链式栈没有限定容量(MAXSIZE),也就是栈可以容纳的元素取决于内存分配。对特定的程序,用不同的方法实现,如还可以用数组式的栈。 3.实际上是一个没有头节点的链表,只不过对操作做了限定 4.把栈顶元素定为 链表的第一个节点,也就是头指针指向的结点为栈顶,这样在压栈和出栈是方便操作。 5.下面是对链式栈的实现,并写了一个驱动程序进行测试。 6..驱动原创 2015-06-14 11:54:43 · 446 阅读 · 0 评论 -
链表接口的实现
# include # include # include # define StopCondition t!=0 /***根据实际程序需要修改***/ typedef int DataType; /***根据实际程序需要修改***/ typedef struct node{ DataType data; struct node *next; }No原创 2015-06-13 14:15:19 · 795 阅读 · 0 评论 -
约瑟夫环问题的解决
约瑟夫环问题介绍: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 # include # include # include typedef int DataTp; typedef struct node {原创 2015-06-12 20:37:18 · 547 阅读 · 0 评论