![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构及算法
floatinglong
这个作者很懒,什么都没留下…
展开
-
数据结构(三)查找算法(2)二分查找
二分查找是一种高效的查找方法,但只适用于顺序表。假定有一个升序数组,二分查找主要思路:先把待找x与数组中间的元素y比较,相等则查找成功,否则将数组对半分为左右两个子表,若x<y,则把x与左子表中间元素比较,若相等则查找成功;若x>y,则把x与左子表中间元素比较,若相等则查找成功;否则按上述方法继续查找,直至查找到元素,或者超出边界二分查找:int binarySea...原创 2020-03-18 23:09:59 · 332 阅读 · 0 评论 -
数据结构(三)查找算法(1)顺序查找
一片存储空间的中的数据既可能是有序的、也可能是无序的,有序可以是升序、降序、分块升序等等对于无序存放的数组只能通过顺序查找的方法找到想要的数据顺序查找就是从数据空间的一端到另一端,逐个数据进行比对,直至找到想要的数据按照这种说法,最终可能出现两种情况:①找到元素,②找不到,超出边界这样每次需要判断两个条件,对于顺序表,可以设置一个哨兵,即将数组的首(或尾)空间空出来,平时不存放数据...原创 2020-03-18 20:41:10 · 687 阅读 · 0 评论 -
数据结构(一)线性结构(4)队列
队列的读写顺序为先入先出,根据结构可以分为单向队列、双向队列、循环队列、双向循环队列等这里以循环的顺序队列和单向链队列为例:循环的顺序队列定义:typedef struct QUEUE { int iData[ARRAY_SIZE]; int iFront; int iRear;}T_Queue, *PT_Queue;iData是数据域iFront、i...原创 2020-03-18 19:41:10 · 183 阅读 · 0 评论 -
数据结构(一)线性结构(3)栈
顺序表、链表是线性表的两种表示方法,指定的线性表的组织方式,对于不同的读写顺序的线性表,也有不同的定义,例如:元素按照先入后出的顺序读写的线性表称为栈元素按照先入先出的顺序读写的线性表称为队列按照上面的定义,可以组合出四种数据结构:顺序栈、链栈、顺序队列、链队列对于顺序栈,空间是事先分配好的,一般都会偏大,为了更好地利用顺序栈空间,可以将一个大栈拆分为两个小栈,大栈的两端分为别两个...原创 2020-03-18 19:18:18 · 149 阅读 · 0 评论 -
数据结构(一)线性结构(2)链表
链表是线性表的另一种表示方法,其特点是每个元素包含数据域和指针域,指针域的存在使得链表元素之间在空间上不必连续(即地址不连续),并且链表元素节点可以用时分配,比顺序表要灵活,但如果节点数较多,耗费空间资源比顺序表要多链表有单向链表、双向链表、十字链表、循环链表等,这里仅简单介绍单向链表,其它链表形式大同小异其基本定义:typedef struct LIST{ int idata...原创 2020-03-18 18:50:29 · 256 阅读 · 0 评论 -
数据结构(一)线性结构(1)顺序表
线性表是最基本、最常用的数据结构,大部分线性表中数据元素之间的关系是一对一的关系,除了首尾元素,其它元素都是首尾相连的其表示方法主要有顺序表示(顺序表)以及链式表示(链表),在本节介绍顺序表的一些操作实现顺序表至少包含一个用于存储数据的数组和一个表示数据个数的变量,因此顺序表可定义为:typedef struct { int aiArray[ARRAY_SIZE]; i...原创 2020-03-11 00:51:01 · 3699 阅读 · 0 评论