数据结构
文章平均质量分 78
sherilindas
这个作者很懒,什么都没留下…
展开
-
线性表应用-有序顺序表归并
有序表归并算是顺序表中的一种算法操作,是顺序表其他应用的基础,例如,一元稀疏多项式运算和稀疏矩阵。 有序表归并是指将两个已经排好顺序的顺序表A,B,合在一起组成一个新的有顺序的顺序表C。 算法操作可以分为: 1、为新的顺序表listMerge分配内存空间,并初始化C(指定大小等) 2、插入,先比较list1和list2的数据哪个大哪个小,并按照大小顺序逐个插入到listMerge中 3原创 2016-09-24 08:19:32 · 3126 阅读 · 0 评论 -
栈
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。入栈是从栈顶入,出栈也是先从栈顶出。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。是FILO(first in ...原创 2016-08-16 10:09:23 · 551 阅读 · 0 评论 -
线性表之链表C++版
链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。每个结点都应包括两个部分:一为用户需要用的实际数据,即数据域,二为下一个结点的地址,即指针域。链表有一个“头指针”变量,以head表示,它的指针域存放一个地址,它也可以有数据域,但是没有意义,不过可用于存放链表长度。该地址指向一个元素。链表中每一个元素称为“结点”,因此,head指向第一个元素:第一个元素又指向第二个元素;…原创 2016-08-16 09:11:21 · 1055 阅读 · 2 评论 -
线性表之顺序表
线性表线性表是由n(n≥0)个相同类型的数据元素构成的有限序列。对于这个定义应该注意两个概念:一是“有限”,指的是线性表中的数据元素的个数是有限的,线性表中的每一个数据元素都有自己的位置。二是“相同类型,指的是线性表中的数据元素都属于同一种类型。线性表又分为顺序表和链表。顺序表(数组)的概念顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表原创 2016-07-25 18:06:41 · 695 阅读 · 0 评论 -
环形队列
生活中有很多队列的例子,比如说到火车站买票什么的,当然先到先买,派头的买完票就可以出队列了,而想上车的人就要到队列尾排队。我们都是新世纪的好青年,所以我们也不会也不允许插队。而从生活中,我们可以抽象出队列的概念。队列就是一个能够实现“先进先出”(FIFO(first in first out))的存储结构。队列分为普通队列和环形队列。先讲一讲普通队列,这样有助于理解环形队列的好处。普通队列普通队列原创 2016-07-16 23:50:19 · 13594 阅读 · 1 评论 -
哈希表
哈希表定义:如果记录的关键字与存储位置存在一一映射的关系,你们就可以通过待查记录的关键字,计算其存储位置,直接找到该记录。关键字K到D的映射关系H表示为H(key):K->D,key∈K K为主关键字集合,H称为哈希函数或散列函数。D为一个连续的存储单元。按照哈希函数构建的表称为哈希表/散列表。同时有关的重要概念是D的大小m,即哈希表的地址区间长度。另外一个概念是冲突,即如果原创 2016-11-16 17:15:21 · 881 阅读 · 0 评论 -
希尔排序
希尔排序其实是直接插入排序的一个拓展。虽然没有直接证明说明希尔排序比直接插入排序快,但是在并行运算上,希尔排序的确十分优秀。而且这是一个不稳定的排序算法。为什么用希尔排序: 直接插入排序有个不足之处是当一个数组是十分无序的状态时,排序的时间复杂度较久。特别是要将一个逆序的数组排为顺序的数组,这个逆序的数组相当于完全无序的,而直接插入排序需要的时间久。(数据多时,且无序)而如何使排序时间减少呢,那么对原创 2016-10-15 14:52:19 · 1240 阅读 · 0 评论 -
栈应用之共用栈
为什么用共用栈:栈的顺序存储还是很方便的,但是当一个栈的容量空间不够了,我们就需要另开辟一段内存,这很麻烦。所以,我们干脆弄一个足够大的内存空间,然后让两个数据类型相同的栈来共享这个空间。 共用栈的实现原理:共享栈,即是两个栈使用同一段存储空间。第一个栈从数组头开始存储,第二个栈从数组尾开始,两个栈向中间延伸。参考博客: http://www.cnblogs.com/xing901022/p原创 2016-10-13 19:07:54 · 945 阅读 · 0 评论 -
计数基数排序法
基数排序:将记录的关键字看成由m个关键字复合而成,每个关键字可能取r个值,则只要从最低位关键字器,先按关键字的不同值将记录“分配”到r 个子序列,再按从小到大将各子序列依次首尾相接“收集”在一起,如此重复m趟,最终完成整个记录序列的排序。 例如:分扑克牌,先把每张牌分为4个花色,各自排序后,以黑桃到砖块的顺序相接在一起。基数排序分为链式基数排序和计数基数排序。 计数基数排序是在顺序存储结构中实现原创 2016-10-21 12:03:49 · 1031 阅读 · 0 评论 -
链表C版
链表的介绍主要看之前写的c++版链表,这里就不再多说了。 http://blog.csdn.net/sherilindas/article/details/52207222先看头文件头文件 LinkList.htypedef struct LinkList //定义节点{ int data; struct LinkList* next;}List;List* cr原创 2016-08-18 12:20:26 · 346 阅读 · 0 评论