摘要:
我们先来看一种最简答的排序方法-插入排序,插入排序通过N-1趟(Pass)排序组成,如P代表趟数,那么我们一共要从P=1到P=N-1,每一趟排序,我们可以保证从位置0到位置P-1也就是前P个元素都已经是排好序的。方法就是在第P趟时将位置P上的元素放入前P个元素组成的排... 阅读全文
摘要:
队列先进先出,涉及到两个位置的操作,一个是队首,一个是队尾,我们分别用两个整型变量来表示队首和队尾,另外需要注意的是我们实现队列时要借助循环数组,具体在代码中已经很清楚了。实现过程中的技巧与用数组实现栈时大多数一样。首先,我们来声明类型,结构和例程。/*** @fil... 阅读全文
摘要:
我们在学习数据结构时,把声明部分放在.h文件中,而把实现部分放在.c文件中,我使用的是code blocks,却发现会出现找不到头文件的问题,同样使用code blocks的伙伴可能也会遇到,现贴出解决方法:点击Project(项目)->Build Options(生... 阅读全文
摘要:
用单链表实现栈并不是最好的方法,因为出入栈都要涉及指针的操作,在一些情况下这些操作可能会花费过长的时间,最简单实现栈的方法还是用数组的方式,用一个int型的数字表示栈顶元素的位置,进栈和出栈只需要对这个数字进行自加或自减就可以了。缺点是需要提前知道栈的大小,不支持动态... 阅读全文
摘要:
这种方法用链表来表示栈,头结点始终指向栈顶的元素,每次入栈就是在头结点后面插入一个元素,而出栈则是删除头结点后面的那个元素,思想很简单,有了链表的基础,实现起来也是很容易的。那么老规矩,先将栈ADT的声明部分放在Stack.h这个头文件里。代码如下:/*** @fil... 阅读全文