排序_1.冒泡排序
冒泡排序简介:
冒泡排序(BubbleSort)是一种流行的排序算法,这个排序过程就像一个个向上(向右)冒泡的气泡,最轻的气泡先冒上来(到达R[n]位置),较重的气泡后冒上来,因此形象的称之为冒泡排序.
对R[1]~R[n]这n个记录的冒泡排序过程:
第一趟从第一个记录R[1]开始到第 ...
数据结构C语言实现9.哈希表
引言哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。我们可以想,数组作为一个连续的储存空间,通过下标就可以很容易的访问到元素内容,可是进行插入删除操作的复杂度就很高了.而链表以其独特的物理存储结构,正好利于插入删除,而访问却差与数组.那我们可 ...
数据结构C语言实现8.广义表
引言数组是一个数据元素的集合,元素之间具有线性关系,但是,元素可以参与多个线性关系(前面讲的都是参与一个);广义表是一个数据元素的集合,元素之间具有线性关系,但其前驱后继可以是一般元素,也可以是一个表。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。也可以说广义表(Lists,又称列表)是 ...
数据结构C语言实现7.动态数组
引言:我们之前提到过 数组(Array),是一种数据结构,是数据元素(elements)的集合。
数组的特点:
12345678//数组的缺点://// 1.一旦数组定义,则大小固定,无法进行修改(数组的大小)。// ...
数据结构C语言实现6.通用队列
引言数据结构中的队列模型和我们日常生活中的排队情况是一致的,排队买票,窗口一端叫队头,末尾进队叫队尾; 最先在前面买票的先离开,最早进入队列的元素最早离开。 所以队列又称作FIFO表(First in First out)。队列(Queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(fr ...
数据结构C语言实现5.通用栈
一、引言I、程序的内存分配一个由C/C++编译的程序的存储空间布局分为以下几个部分:数据段,代码段,堆栈段。
1 初始化的数据通常将此段称为数据段.data,它包含了程序中需赋初值的变量。初始化的全局变量和静态变量存放在这里。例如,C程序中任何函数之外的说明:int maxcount = 99; ...
数据结构C语言实现4.进一步封装的双向链表
====引言
在前面,我们已经对数据结构中的双向链表进行了阐述,在这一节,我们将会对双向链表进行更深层次的封装。
在C++的STL中,或者在java中,都会有一个概念叫做迭代器。迭代器提供对一个容器中的有范围的对象的访问。
迭代器就如同一个指针。这一节我们可以迭代器封装链表使用户接触不到底层 ...
数据结构C语言实现3.双端链表
引言我们已经介绍了数据结构中的单向链表以及实现了一些接口,我们发现,链表中的一个节点通过一个next指针指向下一个节点,依次传递;如果我们想要找到一个特定的节点,就算我们增加了控制信息,也必定需要从头开始遍历,如果每个节点增加一个向前一个节点的指针,它的每个数据结点中就都有两个指针,分别指向直接后继 ...
数据结构C语言实现2.带控制信息的链表
引言在上一篇博客数据结构1.单链表中,我们对链表相对数组的优缺点进行了比较。而且,我们发现,链表是一种物理存储单元上非连续、非顺序的存储结构,所以,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。若是想要对链表中的其中一个元素进行操作,通常都需要p_node = p_node->next; ...
数据结构C语言实现1.单链表
链表与数组在编程语言中,数组数据结构(array data structure),简称数组(Array),是一种数据结构,是数据元素(elements)的集合。有限个相同类型的元素按顺序存储,用一个名字命名,然后用编号区分他们的变量的集合;这个名字称为数组名,编号称为下标。
链表(Linked li ...