
数据结构
泪无痕z
大家好!我是一个热爱计算机行业的小学生,现在主要在学习嵌入式
展开
-
线性表(一)
一、线性结构 线性结构是最简单、最常用的一种数据结构。 特点是:在数据元素的非空有限集合中,除第一个元素没有直接前驱、最后一个元素没有直接后继外, 集合中其余的每个数据元素均有唯一的直接前驱和唯一的直接后继。二、线性表的概念 线性表是由n(n>=0)个类型相同的数据元素组成的有限序列,记作(a1,a2,...原创 2018-05-21 09:04:43 · 850 阅读 · 0 评论 -
排序(五)
三、选择类排序 (1)简单选择排序 ***思想 第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录进行 交换。共需进行n-1趟简单选择排序,直到所有记录排序完成为止。 ***算...原创 2018-06-07 09:26:57 · 161 阅读 · 0 评论 -
排序(四)
(2)快速排序 ***思想 从待排序记录序列中选取一个记录(通常选取第一个记录)为枢轴,其关键字设为K1,然后将其与关键字小于k1 的记录移到前面,而将关键字大于或等于k1的记录移到后面,结果将待排序记录序列分成两个子表,最后将关键字 为k1的记录插入到其分界线的位置处,这个过程称为一趟快速排序...原创 2018-06-06 19:07:33 · 178 阅读 · 0 评论 -
排序(三)
二、交换类排序 思想: 通过一系列交换逆序元素进行排序的方法。 (1)冒泡排序 ***思想 每次扫描顺次比较相邻的两个元素的大小,若逆序就交换位置,反复扫描,直到待排序记录序列没有逆序为止。 ***算法 void BubbleSo...原创 2018-06-06 15:12:01 · 195 阅读 · 0 评论 -
排序(二)
(2)折半插入排序 ***思想 将折半查找思想用于在有序记录中确定应插入位置,相应的排序法称为折半插入排序法。 ***算法 void BinSort(RecordType r[],int length) { int i,j,low,hi...原创 2018-06-06 13:49:56 · 171 阅读 · 0 评论 -
排序(一)
一、插入类排序 基本思想: 在一个已排好序的记录子集的基础上,每一步将下一个待排序的记录有序插入到已排好序的记录子集中, 直到将所有待排记录全部插入为止。 (1)直接插入排序 ***思想 将第i个记录的关键字Ki,依次与前面的i-1个记录的关键字进行比较,将所有关键字大于ki的记录依次向后...原创 2018-06-05 15:38:29 · 181 阅读 · 0 评论 -
树、森林和二叉树的关系
一、树的存储结构(孩子兄弟表示法) 思想: 以二叉链表作为树的存储结构,链表中每个结点设有两个链域,分别指向该结点的第一个孩子结点和 下一个兄弟(右兄弟)结点。 存储结构: typedef struct CSNode ...原创 2018-05-28 11:15:57 · 7066 阅读 · 0 评论 -
二叉树(一)
一、二叉树的定义与基本操作 (1)定义 ***每个结点的度都不大于2 ***每个结点的孩子结点次序不能任意颠倒(孩子结点有左右之分,位于左边的孩子称为左孩子,位于右边的 ...原创 2018-05-23 11:30:11 · 329 阅读 · 0 评论 -
二叉树(二)
五、线索二叉树原创 2018-05-28 09:18:58 · 200 阅读 · 0 评论 -
队列(二)
二、链队列 用链表表示的队列简称为链队列。 设置一个队头指针front和一个队尾指针rear,队头指针始终指向头结点,队尾指针指向最后一个元素。空的链队列的 队头指针和队尾指针均指向头结点。 ...原创 2018-05-22 14:40:26 · 257 阅读 · 0 评论 -
队列(一)
一、队列的定义 队列是另一种限制性线性表,它只允许在表的一端插入元素,在表的另一端删除元素,所以队列具有先进先出的特性。 在队列中,允许插入的一端称为队尾,允许删除的一端称为队头。 假设队列为q = (a1,a2,a3. . .an),则a1就是队列的队头元素,an就是队列的队尾元素。 数据结构: (1)Init...原创 2018-05-22 14:04:36 · 1473 阅读 · 0 评论 -
线性表(二)
四、线性表的顺序存储 (1)结构 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表在逻辑结构上 相邻的数据元素存储在连续的物理存储单元中,即通过数据元素物理存储的连续性来反映数据元素之间逻辑 上的相邻关系。 采用顺序存储结构存储的线...原创 2018-05-21 10:23:05 · 208 阅读 · 0 评论 -
栈
一、栈的基本概念 栈是限制在一端进行插入和删除的线性表。允许操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素时称为“空栈”,特点是:后进先出。 栈的基本运算: (1)创建栈---create_stack(len) (2)清空栈---clear_stack(S) (3)判断是否栈空---is_e...原创 2019-07-08 10:05:49 · 209 阅读 · 0 评论